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,

-- 
Raul

On Tue, Mar 15, 2016 at 12:12 PM, Thomas Costigliola <[email protected]> wrote:
> I believe this is what Pascal is trying to demonstrate (correct me if I am
> wrong):
>
>    0 (1 : '/') \
> /\
>
>    0 ((1 : '/') \)
> |syntax error
> |       0((1 :'/')\)
>
> A sequence of adverb applications when the first application returns an
> adverb is okay (it produces the adverb train), however, applied as a train
> of adverbs, which one might expect to behave the same, it is a syntax error.
>
> I think it's confusing because
>
> X (a0 a1)
>
> in this case is not the same as
>
> (X a0) a1
>
> On 03/13/2016 10:32 AM, Raul Miller wrote:
>>
>> As you point out, this works:
>>     + - (1 : '`u') `:6
>> + -
>>
>> If we fully parenthesize that expression, it looks like this:
>>     require 'trace'
>>     paren '+ - (1 : ''`u'') `:6'
>> ((+ (- (1  : '`u'))) `: 6)
>>
>> So when you put parenthesis around (1 : '`u') `:6 you break the
>> expression.
>>
>> And, as an aside, your original expression did not actually need any
>> parenthesis:
>>     + - 1 : '`u' `:6
>> + -
>>
>> 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