Hi Bob, come hang out at the ReasonML Discord, you'll find that there's a lot of work ongoing to give the user better error messages as well as keep the benefits of auto-currying. I'm fairly sure they're thinking about ways to mitigate the problem of applying too few arguments (which I think affects OCaml too). On Wed, Dec 13, 2017 at 12:55 PM, Robert Muller wrote: > The case that I was trying to make to the ReasonML designers --- > unsuccessfully I guess --- is that the best way to lower the > barrier-to-entry for JS coders to ReasonML is to stick with the ML > tradition of writing k-ary functions with k-tuples and *simply not tell > them about currying at all* until they're up and running. As I understand > it, their parser unrolls the tuples > > let f = (x, y, z) => ... become let f = x => y => z => ... > > Then whenever an unsuspecting JS coder accidentally calls f with too few > arguments, f(a, b), they don't get an understandable type error because > f(a, b) is of function type and they get some weird error with arrows in it. > I hope they'll revisit this issue but it sounds like a done deal. > Bob > > > On Wed, Dec 13, 2017 at 12:39 PM, Hendrik Boom > wrote: > >> On Wed, Dec 13, 2017 at 09:22:05AM +0100, Sebastien Ferre wrote: >> > >> > The Scala notation is an interesting alternative, IMO. >> > >> > They have two notations, f(x,y) and f(x)(y), the latter being the >> > curryfied version allowing partial application. >> > >> > They also have a notation for partial application >> > of the non-curryfied form, f(x,_) and f(_,y), with >> > the advantage that not only the last argument can missing. >> >> I understand currying; I first encountered it in the 60's when >> studying combinatory logic. >> >> But I find it a nuisance in progrmming in OCaml, becuse it oftern >> happens by accident, and results in mysterious type errors, or none at >> all. >> >> That's why I'd like to see currying only happen explicitly; most of >> the time Ocaml figures I'm currying it's a mistake. >> >> -- hendrik >> >> -- >> Caml-list mailing list. Subscription management and archives: >> https://sympa.inria.fr/sympa/arc/caml-list >> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners >> Bug reports: http://caml.inria.fr/bin/caml-bugs >> > >