[Jprogramming] Does anyone use negative level? (change proposal)

Henry Rich henryhrich at gmail.com
Sun Jul 29 21:29:50 UTC 2018


" if there is an appropriate "-3" level then apply there, else apply at maximum depth."

As a rule describing current behavior, this is wrong.  It suffers from a 
couple of undefined terms: (1) what is -3 level? (2) what is maximum depth?

If -3 level means "3 levels down from the top" (or equivalently 
"enclosed by 3 boxes"), it has a more serious problem: the system 
doesn't do that currently.

Henry Rich

On 7/29/2018 5:22 PM, 'Pascal Jasmin' via Programming wrote:
>
>  From your wiki entry, this is the current behaviout:
>
> $L:_3 t
>
> ┌─┬─────────────┐
>
> │1│┌───────┬─┬─┐│
>
> │ ││┌─┬─┬─┐│2│2││
>
> │ │││3│1│2││ │ ││
>
> │ ││└─┴─┴─┘│ │ ││
>
> │ │└───────┴─┴─┘│
>
> └─┴─────────────┘
>
> which is quite reasonable: " if there is an appropriate "-3" level then apply there, else apply at maximum depth."
>
> The behaviour to leave unchanged if "no such level exists" is useful, but perhaps a new primitive "L::" would be the appropriate path.
>
> L::2 would also leave items that do not have such depth unchanged.
>
> There doesn't seem to be a "magic reason" for negative n argument to have different behaviour.
>
>
>
> On Saturday, July 28, 2018, 7:42:39 p.m. EDT, Henry Rich <henryhrich at gmail.com> wrote:
>
>
>
>
>
> L:, especially the dyad, is so complicated already that it's not worth
> changing if complex arguments are needed.
>
> It would be pretty simple to look through your code for for L:_,
> wouldn't it?  Do you have more than one occurrence?  Could you replace
> the level with a positive constant or a negative constant under the new
> definition?
>
> As you well know, J has a history of making incompatible changes if they
> are improvements to the language.
>
> Henry Rich
>
> On 7/28/2018 7:11 PM, Jose Mario Quintana wrote:
>> I have, at least, produced code which includes L:_1 in a context in which
>> it is not equivalent to &.>.
>>
>> Have you considered to get what you want without potentially breaking
>> existing code (e.g., giving meaning to imaginary whole numbers for the
>> right argument of L:)?
>>
>> (It seems that you wrote L" instead of L: a couple of times in the
>> description of your proposal.)
>>
>> On Fri, Jul 27, 2018 at 3:29 PM, Henry Rich <henryhrich at gmail.com> wrote:
>>
>>> I think negative level is wrongly defined.  (u L:(-r) y)  applies u at
>>> level ((L. y) -r), which measures from the bottom of the tree.  What I want
>>> is a form that applies u two levels down, say, which I can't get now.  I
>>> propose to change L: to do what I want.
>>>
>>> Has anyone found a use for L:(-r) using the current definition?
>>>
>>> My proposed change is described at https://code.jsoftware.com/wik
>>> i/System/Interpreter/Requests#Change_definition_of_negative_
>>> level_.28strawman.29
>>>
>>> Henry Rich
>>>
>>> ---
>>> This email has been checked for viruses by AVG.
>>> https://www.avg.com
>>>
>>> ----------------------------------------------------------------------
>>> For information about J forums see http://www.jsoftware.com/forums.htm
>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm



More information about the Programming mailing list