The idea is inspired by the fact operators such as +, -,%, etc. can be seen as functions with either one or two arguments passed, and no side-effects. Assuming I, or someone else, writes a language which stops more than two arguments from being passed, and also only works via return value:
a) would such a language lead to easier to understand code?
b) would the flow of the code be clearer? (forced into more steps, with potentially less interactions 'hidden'
c) would the restrictions make the language inordinately bulky for more complex programs.
d)(bonus) any other comments on pros/cons
Note:
Two decisions would still have to be made- the first is whether to allow user-input outside main() or its equivalent, and also what the rule will be regarding what happens when passing arrays/structures. For an example, if someone wants a single function to add multiple values, he could get around the limitation by bundling it into an array. This could be stopped by not allowing an array or struct from interacting with itself, which would still allow you to, for example, divide each number by a different amount, depending on it's position.
result = f(a)(b)…(z)
. This is the case in the ML language family such as Haskell, but also conceptually in other languages such as Lisp, JavaScript, or Perl.