[ANN] etran: added map-reduce comprehension
Serge Aleynikov
serge@REDACTED
Sat Aug 21 02:59:35 CEST 2021
Dear Erlangers,
I just pushed the release 0.2 of the etrans application that adds a parse
transform for extending the standard list comprehensions with the ability
to fold a list, given the initial state.
https://github.com/saleyn/etran
This is similar to the lists:foldl/2 and lists:mapfoldl/2 functions:
Given: L = [1,2,3]
1. Fold Comprehension:
6 = [S+I || S = 0, I <- L]. %% Translates to: lists:foldl(fun(I,S) ->
S+I end, 0, L)
2. MapFold Comprehension:
{[1,2,3], 6} =
[{I, S+I} || S = 0, I <- L]. %% Translates to: lists:mapfoldl(fun(I,S)
-> {I, S+I} end, 0, L)
As an avid user of list comprehensions, I always missed the ability to do
the fold on a list using a short-hand pattern syntax. This etran library
lifts that restriction, potentially making the code more terse.
Enjoy,
Serge
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210820/2abf8a26/attachment.htm>
More information about the erlang-questions
mailing list