Elixir-enumerables
Elixir-列挙可能
列挙可能とは、列挙できるオブジェクトです。 「列挙」とは、セット/コレクション/カテゴリのメンバーを1つずつ(通常は順番に、通常は名前で)カウントオフすることを意味します。
Elixirは列挙型の概念と、列挙型と連携するためのhttps://elixir-lang.org/docs/stable/elixir/Enuml[Enum module]を提供します。 Enumモジュールの関数は、名前が示すように、データ構造内の値の列挙に制限されています。 列挙可能なデータ構造の例は、リスト、タプル、マップなどです。 Enumモジュールは、enumを処理する100を少し超える関数を提供します。 この章では、いくつかの重要な機能について説明します。
これらの関数はすべて、列挙可能な要素を最初の要素として、関数を2番目の要素として取り、それらを処理します。 以下に機能を説明します。
all?
上記のプログラムが実行されると、次の結果が生成されます-
これは、このリストのすべての要素が奇数ではないためです。
any?
名前が示すように、この関数は、コレクションの要素がtrueと評価された場合にtrueを返します。 たとえば-
上記のプログラムが実行されると、次の結果が生成されます-
チャンク
この関数は、コレクションを2番目の引数として提供されるサイズの小さなチャンクに分割します。 たとえば-
上記のプログラムが実行されると、次の結果が生成されます-
Enum.each(["Hello"、 "Every"、 "one"]、fn(s)→ IO.puts(s)end)
みなさん、こんにちは
res = Enum.map([2、5、3、6]、fn(a)→ a* 2 end)IO.puts(res)
res = Enum.reduce([1、2、3、4]、5、fn(x、accum)→ x + accum end)IO.puts(res)
15
res = Enum.reduce([1、2、3、4]、fn(x、accum)→ x + accum end)IO.puts(res)
10
res = Enum.uniq([1、2、2、3、3、3、4、4、4、4])IO.puts(res)
odd? =&(奇数? =&(rem(&1、2)!= 0)res = 1..100_000 |> Enum.map(&(&1 *3))|> Enum.filter(odd?)|> Enum.sum IO.puts( res)
7500000000
Enum.sum(Enum.filter(Enum.map(1..100_000、&(&1* 3))、odd?))