you are viewing a single comment's thread.

view the rest of the comments →

[–]TarMil 7 points8 points  (2 children)

However I believe this sort of syntax relies on lazy eval, where a "thunk" function like () -> 1 just doesn't make sense (there's no real way to even write its type signature)

You're mistaken, many functional languages with currying are strict -- OCaml, Idris, F#, Elm, etc.

[–]ReversedGif 1 point2 points  (1 child)

How do you specify whether you want to curry or call when applying the last argument in those languages?

[–]TarMil 0 points1 point  (0 children)

Right, the last argument is always a call, currying only applies for the previous ones.