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
