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

Reply via email to