As a beginner I got stuck on this for a long time while experimenting with external bindings. I though I was misunderstanding external bindings when in fact I was misunderstanding something that looks so simple. (not the binding code below, just a minimal example)
let startAt = () => 1 let plus1 = x => x + 1 let end = startAt()->plus
But this results in an error
let startAt = () => 1 let plus1 = x => x + 1 let end = startAt()->plus1() // It only accepts 1 argument; here, it's called with more.
What is lurking here? Is something else being passed?
It just doesn’t seem consistent that
let f = (x,y) => x+y 1->f(2) // OK
let f = (x) => x+1 1->f() // BAD