Don Watson in response to Ric wrote:
>    You state:
>
> "As I see it the only
> thing stopping you from going down that route at the moment is that you
> don't like the syntax of:
>
>  myverb=: verb def '(x + y) - (x * y)'
>
> I think you'll have much less resistance to the above than to this below:
>
>  myverb=: (([) + (])) - ([) *      NB. I think this is the equivalent in
> your tacit notation?!?"
>
>    Tacit programming is central to what J is. The ASCII
> keyboard and tacit programming seem to me to be the two most
> fundamental and central additions that J has over the APL that I knew
> - I do not know what has been added to APL since. I am not prepared
> to use J without the equivalent of tacit programming.
>
>    Every Computer language has Computer Science
> business trappings like: verb def ' ' . They don't belong in Mathematics.
>
>    Actually the relevant notation would be:
>
>            myverb=: (([) +) - ([) *
>
>    The right argument is automatically brought in to the left of a right
> parenthesis - except when a left argument is indicated and, of course,
> to the right of the last verb. I have 11 characters in my definition.
> You have 20. And if we are talking elegance, a fundament objective of
> Mathematics, I would argue that mine is more elegant than yours.
>
>    How would you put this expression in tacit J ?

I do not see the advantage of the new proposal.

If the users have had explained the structure of a train then

myverb =:  +-*

If we want to write it out in full

myverb =: ([+])-([*])

We have called the arguments explicitly and added parentheses
It matches the 11 characters of your solution, but 8 of them are redundant 
as soon as one knows the meaning of trains.

One of the important things in tacit programming is learning that the 
function  'same'  is very important.  The rules for trains incorporate that 
function in many places but you can use two distinct 'same' functions with 
different referents wherever you like.  By putting a constant in the left 
position of a fork, the rules were expanded very elegantly to enable 
incorporating any constant in a tacit function, but you have to think about 
how you do it.  Perhaps asking someone to think is asking too much.  It is 
called learning and it takes effort.

Fraser 

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to