- Mastering Elixir
- André Albuquerque Daniel Caixinha
- 282字
- 2021-08-05 10:42:48
Eager processing with the Enum module
Having seen how recursion works in Elixir, we'll now show some examples of the abstractions that are built on top of it. We'll explore the Enum module, which contains a set of functions to work on collections. We've already seen some examples of collections in the Elixir's data types section, such as lists or maps. More generally, we can use the Enum module on collections that implement the Enumerable protocol.
Taking the two examples from our Recursion section, let's see how they become incredibly simple to implement using the Enum module:
iex> Enum.map([2, 4, 6], &(&1 * 2))
[4, 8, 12]
iex> Enum.reduce([1, 2, 3], 1, &(&1 * &2))
6
The map function receives a collection and a lambda, and returns a new list where the lambda is applied to each element of the collection.
The reduce function receives a collection, an accumulator, and a lambda. The lambda receives the current element of the collection and the accumulator, and the result of this lambda is the accumulator for the following iteration. At the end of the iteration, reduce returns the final accumulator value.
iex> require Integer
Integer
iex> Enum.map([1, 2, 3], &Integer.is_even/1)
[false, true, false]
You'll see the Enum module being used in the application that we'll build throughout the book. For further usage of the Enum module, check its documentation at https://hexdocs.pm/elixir/Enum.html.
- HTML5+CSS3王者歸來
- HTML5移動Web開發技術
- R大數據分析實用指南
- Android玩家必備
- Tableau 10 Bootcamp
- Python深度學習:模型、方法與實現
- The Professional ScrumMaster’s Handbook
- OpenResty完全開發指南:構建百萬級別并發的Web應用
- Python機器學習算法與應用
- C語言程序設計
- ASP.NET 4.0 Web程序設計
- Mastering ASP.NET Web API
- 微信公眾平臺服務號開發:揭秘九大高級接口
- Learning Akka
- JavaScript實戰-JavaScript、jQuery、HTML5、Node.js實例大全(第2版)