Earlier quoted context omitted.
I think this is partly because of the syntax. When we write human languages (that use a Latin script), we use punctuation to delineate the beginning and end of terms. In a language like C or Rust, terms are surrounded by commas, parentheses, angle brackets, and so on. In OCaml and Haskell, many things that there is syntax for in C-style languages are done as ordinary function calls, which separate terms by only white…
That's because of currying. If you want to partially apply parameters, in your example, with Haskell we would just have to do this: someLongAssFunctionName someQuirkyParameter And we get a function that accepts one parameter. But in Rust you would have to do this: move |another_one: i32| { some_long_ass_function_name(some_quirky_parameter, another_one) } Which is not easier to read.
some_long_ass_function_name(some_quirky_parameter, ..)
which would be more readable without giving up on punctuation.