imo, having function application use parens instead of a space introduces a lot of syntactic niceties - Foo(Bar(Baz), Bloop, fip + fop) looks nicer to my eyes than Foo (Bar Baz) Bloop (fip + fop)
Plus, OCaml's oddities around type application and variants being uncurried...
Conversation
... means that having parens for function application mostly makes it so "like things look alike"
1
I'd probably prefer it if uncurried things looked uncurried, and curried things looked curried, rather than pretending either way.
4
1
in general, I just try not to think about currying :P
1
1
What's the difference between OCaml and a language with no currying, but that supports effortless partial application? The lines get blurry.
1
well, those languages with effortless partial application generally allow unordered partial application:
(Perl)
```
my $f = bloop(5, *)
```
1
1
So does "Reason" with named arguments!
1
2
does it really? Nice! (I can't say I've used named arguments much...)
1
Yup, named arguments are a pretty interesting solution to the problem Rich Hickey's has with currying. They aren't name-spaced, so they aren't a full solution, but still cool!
1
what could possibly be improved by namespacing? Right now they're light weight, free form and ad hoc. Not bad.
1
What happens if you compose two of them together, and they use the same names?
Namespacing makes more sense for row-labels though, as opposed to argument labels. Not whether OCaml uses rows to represent labelled arguments though.
1
No, it's not "row polymorphism" for labels, it's more constrained than that, but simpler.
1
Show replies
It then defaults to order. You can layer multiple named args that are identical. It mostly "just works" for all the common cases.
1


