The assignments are a consequence of J's agreement; see [0] for example.
If one wants the effect of 'a b c' =:i.3 4 5 using the verb is (or a
similar verb) then one can use 'a b c' is i.3 4 5 :)
How is 'abc' is"0 i.3 4 5 useful? I do not know... Who knows?
How is the verb is (or a similar verb) useful? See [1, 2] for instance
(not to mention for debugging tacit verbs).
References
[0] Rank and Uniformity Roger K.W. Hui
http://www.jsoftware.com/papers/rank1.htm
[1] [Jprogramming] Dynamic Language Features in J? Oleg Kobchenko
http://www.jsoftware.com/pipermail/programming/2006-December/004479.html
[2] [Jprogramming] Saving Nouns as Permanent Data Jose Mario Quintana
http://www.jsoftware.com/pipermail/programming/2008-April/010529.html
On Wed, Jul 12, 2017 at 4:00 PM, Don Kelly <[email protected]> wrote:
> How is "is" more useful than from x=: y
>
> what is interesting is that
>
> 'abc' is "0 i.3 4 5 displays the i.3 4 5 array but the value of abc
> appears as : although a, b, c correspond to
>
> (<0 1 2; 3; 4){i. 3 4 5
>
> 19 39 59
>
>
> In the use of "is" in this case it appears that it
>
>
> whereas 'abc' =: i. 3 4 5 gives stores the noun abc as the array but
> leaves a, b and c undefined
>
> and 'a b c' =:i.3 4 5 gives 3 (4 by 5 )arrays
>
>
> Don Kelly
>
>
>
> On 2017-07-12 11:08 AM, Jose Mario Quintana wrote:
>
>> Maybe I am misunderstanding... Are you trying to imply that one cannot
>> find a verb such as is=: 4 :'(x)=:y' useful?
>>
>>
>> On Tue, Jul 11, 2017 at 8:37 PM, Raul Miller <[email protected]>
>> wrote:
>>
>> Ok, so, just to be clear - this has nothing to do with default assignment?
>>>
>>> That said, it's probably intentional that there's no verb form of =:
>>> (or =.). For example, given
>>>
>>> is=: 4 :'(x)=:y'
>>>
>>> consider:
>>>
>>> 'abc' is"0 i.3 4 5
>>>
>>> Questions:
>>>
>>> (1) what is
>>>
>>> a+b+c
>>>
>>> (2) how is this useful?
>>>
>>> Thanks,
>>>
>>> --
>>> Raul
>>>
>>>
>>> On Tue, Jul 11, 2017 at 12:53 PM, 'Pascal Jasmin' via Programming
>>> <[email protected]> wrote:
>>>
>>>> Don't fixate on just Henry's syntax or default values.
>>>>
>>>> The basic "delegated function assignment" is:
>>>>
>>>> assign =: 4 : '(x) =: y'
>>>>
>>>> its a verb, that can be composed with others (or rewritten for a
>>>>
>>> different/enhanced delegated assignment function) in a wide variety of
>>> ways
>>> that include all of the discussed applications in this thread.
>>>
>>>> problem 1: can only use =: not =.
>>>>
>>>> problem 2: performance issue in any "delegated function assignment"
>>>>
>>> that wouldn't (or might not) exist if there were verb (and adverb forms I
>>> proposed) forms of copula.
>>>
>>>> I've just repeated previous statements entirely here. Perhaps the
>>>>
>>> mistake I made was not providing an ideal example to your first request.
>>>
>>>> ________________________________
>>>> From: Raul Miller <[email protected]>
>>>> To: Programming forum <[email protected]>
>>>> Sent: Tuesday, July 11, 2017 12:37 PM
>>>> Subject: Re: [Jprogramming] Request for comments: multiple assignment
>>>>
>>>>
>>>>
>>>> I do not see yet that it would be even possible to do that in a way
>>>> that takes advantage of in place assignment optimization. The default
>>>> mechanism only kicks in when no value was being assigned, and it seems
>>>> to me that cases where you can meaningly have "no value was being
>>>> assigned so we need a default" already have complexity which defeats
>>>> the in place assignment optimization.
>>>>
>>>> Worse, though, is that this does not seem like a common case (which
>>>> suggests that it's best not to optimize for it).
>>>>
>>>> That said, if we're not going to be dealing with code examples (and I
>>>> certainly cannot think of any - the requirements seem contradictory),
>>>> and we are going to continue discussing this, perhaps we should move
>>>> to the chat forum?
>>>>
>>>> That said, here's a hypothetical non-example based on Henry's initial
>>>>
>>> post:
>>>
>>>> 'L(0)'=: L,y
>>>>
>>>> For that default value (0) to be relevant, the expression (L,y) must
>>>> be undefined. But if y were undefined the statement would fail with an
>>>> error. And if y were defined and the statement does not fail with an
>>>> error, then that default of (0) can never be used.
>>>>
>>>> Which takes me back to my previous thought which was that taking
>>>> advantage of in place optimizations for this default seems impossible.
>>>>
>>>> So... once again... what are you talking about?
>>>>
>>>> Thanks,
>>>>
>>>> --
>>>> Raul
>>>>
>>>>
>>>>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm