Hi, Neville. In my attempts to understand the core concepts on which J depends I've developed a strong opinion that two is a natural maximum for arguments, and attempts to alter the language to exceed that would fail in a big way.
On the matter of arguments the most significant material, to my eye, is the function-level discipline promoted by John Backus. If I've got this right, the function-level approach is advantageous over the usual unconstrained variants of the lambda calculus in a manner much like the strictures of structured control have advantages over the total freedom of Goto. Restricting arguments to only one or two (never more, never less) allows syntax and semantics to become closely coupled. The result is appreciably richer than the single-argument bias of lambda calculus, the results of which are prominent in Lisp. The biggest gain is dyadic expression, a syntactic form which has been very successful in math for a long time. Verb trains are another advantage, albeit one that is not widely appreciated. Because code is written linearly, there are two simple, unambiguous opportunities for arguments, the positions to either side of a function. It seems to me that the clear options for handling multitudes of arguments are Currying and compound values. J supports both techniques, but tends to give advantages to the latter. Other languages lean more toward Currying. My impression is that having two "natural" arguments is a noteworthy advantage over one. (This advantage seems to lie in simplifying function composition.) The computational advantages of going above two are not so prominent, and the syntactic disadvantages are enormous. So it is that I've come to see the monad/dyad alternative of J as a fundamental "shape" for tractable code, much like the nesting "shape" of structured code gives a now-familiar relief from the difficulties of spaghetti code. Advocacy of a change to the syntax of arguments would need to succeed against the advantages I've touched on here. If I've erred in my assessments or exposition, I welcome corrective criticism. Tracy On Fri, Jul 24, 2009 at 5:45 PM, neville holmes<[email protected]> wrote: > ... > > Having a third, and even a fourth, argument need not > be difficult and would certainly be useful, especially > (in my direct experience) in teaching beginners tacit > programming. > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
