I tend to favour explicit numbers of arguments in functions: I rarely find auto-currying a useful default. Explicit arity gives good errors!
I've realised that auto-currying allows you to handle generic functions though. `a -> b` can be any function!
miniblog.
Related Posts
I'm not sure how I feel about languages with auto currying.
Upside: Partial application is easy.
Downside: It's common to miss a parameter when refactoring, and errors can be unclear.
Upside: You can be generic on functions: a -> b.
Downside: An a -> b isn't very useful.
I don't understand the preference in ML family to use currying so enthusiastically.
Eg in the signature of a sort function, I prefer (a,a)->Ord as the comparator function signature, vs a->a->Ord. It's easier to distinguish inputs and outputs.
Are there upsides I'm missing?