4 ms·
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 i
by giornogiovanna 7y 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.
- woadwarrior01 7y agoOf all the languages I've seen, Swift seems to be the best compromise between ML style FP and imperative programming.
- aloisdg 7y agoDid you try F#? How would you rank it?
- woadwarrior01 7y agoUnfortunately, I haven’t. The only ML family languages that I have significant experience with are SML and OCaml.
- sweeneyrod 7y ago> 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-ocaml/ https://blog.janestreet.com/generic-mapping-and-folding-in-o...) but that's different.
- giornogiovanna 7y agoUsing 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.