its equivalent to 1 2 3 < 2 2 2 1 2 3,:2 2 2
creates 2 items (each item a list) ----- Original Message ----- From: Erling Hellenäs <[email protected]> To: [email protected] Cc: Sent: Monday, July 7, 2014 2:05:03 PM Subject: Re: [Jprogramming] Tacit J and indexed replacement This one beats me. </ is a gerund that modifies y? </1 2 3,:2 2 2 1 0 0 1 0 0}1 2 3,:2 2 2 2 2 3 I couldn't understand that from reading the manual. I guess it's a joke. /Erling On 2014-07-07 15:09, R.E. Boss wrote: > look at 'Item Amend': > > </} 1 2 3,:2 2 2 > 2 2 3 > > > R.E. Boss > > (Add your info to http://www.jsoftware.com/jwiki/Community/Demographics ) > > > >> -----Original Message----- >> From: [email protected] [mailto:programming- >> [email protected]] On Behalf Of Raul Miller >> Sent: maandag 7 juli 2014 12:33 >> To: [email protected] >> Subject: Re: [Jprogramming] Tacit J and indexed replacement >> >> Another approach for this is: >> (x*-.q)+y*q >> >> Sadly, that only works when x and y are numeric. Boxes and literals do >> not have zero and 1 values (hypothetically "fill" could be zero, but >> "1" is harder to rationalize.) >> >> A variant which uses amend might be: >> (q#y) (I.q)} x >> >> This only works when x and y are rank 1, but you could also use >> something like this for higher ranked arrays: >> ($q)$ (q#&,y) (I.,q)} ,x >> >> (I hope I didn't make too many mistakes this time. I'm running without >> any corrective support.) >> >> Thanks, >> >> -- >> Raul >> >> On 7/7/14, Erling Hellenäs <[email protected]> wrote: >>> Hi all ! >>> >>> About the problem I want to solve. >>> >>> Generally you compare some arrays and you want to replace part of one of >>> them with info from the other or from some other array of the same >>> dimensions? >>> >>> I found a solution not using Amend: >>> >>> NB. x and y are arrays of the same rank >>> >>> NB. q is a boolean, also of this rank >>> >>> NB. The expression merges x and y. >>> >>> NB. Where q is TRUE it picks from y, otherwise x >>> >>> NB. q {"0 1 x,"0 y >>> >>> 1 2 3(< {"0 1 [ ,"0 ])2 2 2 >>> 2 2 3 >>> >>> >>> A similar solution using Amend. I'm sure it can be improved, just I >>> didn't do it yet. I didn't try it for the general case. >>> >>> >>> NB. Amend >>> >>> NB. x (v0`v1`v2)} y ↔ (x v0 y) (x v1 y)} (x v2 y) >>> >>> 1 2 3(> # [)`(> # [: i. [: $ ])`(])}2 2 2 >>> 2 2 3 >>> >>> >>> I think what makes Amend tricky is that you(as Ric says) need three >>> inputs. To get them into the tacit expression you have to put two of >>> them together in one noun. >>> >>> >>> There are probably other solutions using sort. >>> >>> >>> Trying the same expression with a version of Raul's Amend: >>> >>> amende=: (0 {:: [)`(1 {:: [)`]} >>> >>> 1 2 3((> (# ; [: (# i.&$) [ ) [) amende ])2 2 2 >>> >>> 2 2 3 >>> >>> >>> Some bug causes Thunderbird to reformat my mails. Hope you get them >> right. >>> I'm looking for something more general than this :) >>> >>> 1 2 3 >. 2 2 2 >>> >>> 2 2 3 >>> >>> >>> /Erling >>> >>> On 2014-07-07 05:58, Raul Miller wrote: >>>> Since it'w nagging at me (and this is still unteted code :/), here's >>>> what I currently think i should have said: >>>> amend=: (0:{::])`(1:{::])`(2:{::])}~ >>>> >>>> The trailing ~ because I need the dyad from the resulting verb, and >>>> the trailing ] on each because those verbs need to ignore one of the >>>> resulting arguments. >>>> >>>> Sadly, my fingers (and "quick memory") keep forgetting this. >>>> >>>> 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 > ---------------------------------------------------------------------- > 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
