This issue has frustrated me more than once, especially as I’ve gotten into 
more abstract coding and writing general tooling.  I think it stands out as one 
of the primary design questions I would reconsider if I were to write a J clone 
or derivative.



> On Mar 15, 2016, at 2:03 PM, Thomas Costigliola <[email protected]> wrote:
> 
> X (a0 a1) is fully parsed once the application of the adverb train to X 
> happens, so no further parsing is done and the parsing rules will not help us 
> resolve what to do next. I don't think the language specifies what happens 
> when an adverb is applied to an adverb, or even acknowledges that it can 
> happen in the first place (is it in the dictionary?) Previous versions of J 
> did not signal a syntax error. I suspect many people "grew up" on "X (a0 a1)" 
> is "(X a0) a1" and is now part of their vocabulary, as this evidence might 
> suggest:
> 
> http://www.jsoftware.com/help/learning/15.htm
> 
> "15.3 Compositions of Adverbs
> If A and B are adverbs, then the bident (A B) denotes an adverb which applies 
> A and then B. The scheme is:
> 
>         x (A B)   means (x  A) B
> "
> So what should the application of an adverb to an adverb be? I don't think it 
> is unreasonable to think it should be the train of adverbs as opposed to a 
> syntax error. Otherwise the description of x (A B) becomes more complex and 
> thou hast multiplied unnecessarily.
> 
> 
> On 03/15/2016 01:17 PM, Raul Miller wrote:
>> This gets into the guts of
>> http://www.jsoftware.com/help/dictionary/dicte.htm and the distinction
>> between a train and direct use.
>> 
>> Basically, though, these two expressions are different:
>>    X (a0 a1)
>>    (X a0) a1
>> 
>> The first forms a train, (which, hypothetically speaking could be
>> associated with some name for later use). The second skips that step
>> and jumps straight into execution.
>> 
>> And, syntax is what distinguishes these two cases.
>> 
>> Meanwhile, when you mix in phrases which form adverbs (such as your 1
>> : '/') example, here, syntax does not go away - and if you throw in
>> half formed ideas with mechanical systems with well defined behaviors,
>> things are going to go awry when those ideas and those systems
>> conflict.
>> 
>> This seems somewhat apropos (from keiapl.org/anec/):
>> 
>> "[D]esign really should be concerned largely, not so much with
>> collecting a lot of ideas, but with shaping them with a view of
>> economy and balance. I think a good designer should make more use of
>> Occam’s razor than of the dustbag of a vacuum cleaner, and I thought
>> this was important enough that it would be worthwhile looking for some
>> striking examples of sorts of overelaborate design. I was surprised
>> that I didn’t find it all that easy, except perhaps for the [designs]
>> of programming languages and American automobiles. I think that
>> designers seem to have this feeling, a gut feeling of a need for
>> parsimony."
>> 
>> I suppose, all successful ideas go through the "half formed" stage -
>> and maybe it's mostly the good ones which survive their failure modes?
>> 
>> Thanks,
>> 
> 
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

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

Reply via email to