@Bubbler you can pass a function to another "function" (though it's called an operator) - but you can't pass an operator to an operator (i mean of the same kind, e.g. mop to a mop)
so, that's just pushing the problem to the next level in the function/mop/dop hierarchy
@ngn A mop has different type from a function, so it's not a problem. But the true problem is we can't pass an op to anything (which gives rise of hyperators)
js is actually a scheme in disguise :) the story goes that Brendan Eich initially wanted to put scheme in netscape but management specifically requested something with a c-like syntax, so it looks familiar to c/java programmers
I imagine, if we get away from the current "tacit" programs and the parsing rule dedicated to operators, and mark every (possibly higher-level) function as either monadic or dyadic, we could have a functional language that supports basic APL syntax.
Though we'd need to experiment how many parens we'll need