What's wrong with just using this:

   assign =: 4 : '(x) =: y'

Or, perhaps better

  Assign =: 1 : '(m) =: y'

?

These are concise definitions, they get the job done, and they do not
require any engine changes. (Which, at least in principle, allows work
to instead be done on something else.)

Put differently, what problems does this proposal solve?

Thanks,

-- 
Raul


On Wed, Jul 13, 2016 at 6:51 PM, 'Pascal Jasmin' via Beta
<[email protected]> wrote:
> I'd suggest a new built-in conjunction.  Say 128!:6 or A:
>
> assignwith =: 1 : 0
> (y) =: u (y~ [ ]) :: ((i.0)"1) 1
> :
> (y) =: x u (y~ [ ]) :: ((i.0)"1) 1
> )
>
> assignwithC =: 2 : 0
> (y) =: u (y~ [ ]) :: (n"_) 1
> :
> (y) =: x u (y~ [ ]) :: (n"_) 1
> )
>
> the error checking (::) is there to set an initial value if the name doesn't 
> exist.
>
>  1 , assignwith (][ +: assignwith) 2 (][ , assignwith) (][erase) 'aa'
> 1 4
>
> The adverb version can be shortened to
>
> 1 : 0
>
> (y) =: u ". y
> :
> (y) =: x u ". y
> )
>
>
> which is a neat feature of ".
>
> An alternative to allow tacit definitions of assignments would be the 
> ordinary dyad:
>
> =::
>
> assign =: 4 : '(x) =: y'
>
> the pattern ([ =:: u) or (] =:: u) would seem straightforward to "boost" with 
> special code for in place assignment.
>
> assignwith =: (] assign (u@:".)) : (]assign (u ".))
>
>
> I imagine this as easy and very useful, especially in combination with 
> inplace improvements.
> ----------------------------------------------------------------------
> 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