logoalt Hacker News

sodapopcan • yesterday at 8:36 PM • 1 reply • view on HN

> Like at some point the neatness of doing all loops as recursion wears off and it's just tiring.

Odd, but I believe you, lol. Elixir's list comprehensions take a `:reduce` option which makes accumulating values a bit more "familiar" and I often use over `reduce`:

    for a <- list, reduce: []
      acc ->
        [a | acc]
    end
Not sure if there is something like that in Erlang (or Gleam for that matter).

Replies

mahboi • yesterday at 8:42 PM

If you already have a list in Erlang, you can use map and the foldl/foldr reducers. But there's no general for-loop. You're expected to use tail recursion.

Also tbh, I don't like reduce either. I agree with that article posted on HN a while back about devs not liking reduce. Just want to insert into my list or whatever, not have to check how exactly reduce works in this particular language.

➕ show 1 reply