Hacker News new | ask | show | jobs
by giornogiovanna 2338 days ago
Yes, of course you can encode it in any language you want, but the point is that ML-ish languages make it extremely natural to think like this, and Java makes it impossibly painful. Haskell makes traditional imperative algorithms painful, though, which is arguably a greater loss.
2 comments

> ML-ish languages make it extremely natural to think like this

You say that, but actually fmap doesn't exist in OCaml (or I assume any other common MLs). Of course you can embed a language and type system within it that does have it (https://blog.janestreet.com/generic-mapping-and-folding-in-o...) but that's different.

Using List.map and Option.map is more verbose and less general, but it's still most of the way there.

OCaml still has currying, algebraic data types, "implicit" returns, tail call optimization, etc., and it encourages recursion instead of loops wherever applicable.

Of all the languages I've seen, Swift seems to be the best compromise between ML style FP and imperative programming.
Did you try F#? How would you rank it?
Unfortunately, I haven’t. The only ML family languages that I have significant experience with are SML and OCaml.