Thanks Pascal, Thatis the sort of answer I was looking for. It points out an advantage for inserting the @ intentionally in many cases as it solves the rank problems.
Knowing why something is the way it is, allows you to use it correctly. Linda -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of 'Pascal Jasmin' via Programming Sent: Thursday, February 12, 2015 9:13 AM To: [email protected] Subject: Re: [Jprogramming] Source of frustration ([: v [: u ]) is almost but not exactly the same as ([: v@:u ]) basically, if u has any adverbs applied to it (such as "1) then those adverbs also apply to v in v@:u. But don't apply to v in ([: v u) A good reason for 13 : to have given you what you got is that you explicitly used @ instead of made just a linear phrase. ________________________________ From: Linda Alvord <[email protected]> To: [email protected] Sent: Thursday, February 12, 2015 3:09 AM Subject: Re: [Jprogramming] Source of frustration There have been many explanations of y=how @ works, but here is the question I really am interested in. Working code: (i.4)*/>:i.5 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 Simple working definition: times=: 13 :'(>:i.x)*/>:i.y' 4 times 5 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 Definition which also works but seems cumbersome: times2=: 13 :'(>:@i.x)*/>:@i.y' 4 times 5 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 Why couldn't my definition of times be converted to what seems to be the preferred J version in times2? times ([: >: [: i. [) */ [: >: [: i. ] times2 ([: >:@i. [) */ [: >:@i. ] Linda -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Linda Alvord Sent: Monday, February 9, 2015 5:01 PM To: [email protected] Subject: Re: [Jprogramming] Source of frustration Here's another example of my suggestion: These two expressions have the same result. eb=: 13 :'y $<'' ''' ([:<eb)"1(>:i.2),"0/>:i.4 ----T-----T-------T---------┐ │--┐│--T-┐│--T-T-┐│--T-T-T-┐│ ││ │││ │ │││ │ │ │││ │ │ │ ││ │L--│L-+--│L-+-+--│L-+-+-+--│ +---+-----+-------+---------+ │--┐│--T-┐│--T-T-┐│--T-T-T-┐│ ││ │││ │ │││ │ │ │││ │ │ │ ││ │+-+│+-+-+│+-+-+-+│+-+-+-+-+│ ││ │││ │ │││ │ │ │││ │ │ │ ││ │L--│L-+--│L-+-+--│L-+-+-+--│ L---+-----+-------+---------- ([:<eb)"1(>:i.2),"0/>:i.4 ----T-----T-------T---------┐ │--┐│--T-┐│--T-T-┐│--T-T-T-┐│ ││ │││ │ │││ │ │ │││ │ │ │ ││ │L--│L-+--│L-+-+--│L-+-+-+--│ +---+-----+-------+---------+ │--┐│--T-┐│--T-T-┐│--T-T-T-┐│ ││ │││ │ │││ │ │ │││ │ │ │ ││ │+-+│+-+-+│+-+-+-+│+-+-+-+-+│ ││ │││ │ │││ │ │ │││ │ │ │ ││ │L--│L-+--│L-+-+--│L-+-+-+--│ L---+-----+-------+---------- Define each one as I and j i=: 13 :'(<@eb)"1(>:@i.x),"0/>:@i.y' j=: 13 :'([:<eb)"1(>:i.x),"0/>:i.y' Both agree as monads and dyads. (i 2)-:j 2 1 (2 i 4)-:2 j 4 1 In the interpretation of J, [: is inserted when appropriate. My question is: "why couldn't both have the same Definition when trains are involved. It @ is superior, I would suggest the definition of i for both. eb (<' ') $~ ] i [: <@eb"1 ([: >:@i. [) ,"0/ [: >:@i. ] j [: ([: < eb)"1 ([: >: [: i. [) ,"0/ [: >: [: i. ] Linda eb (<' ') $~ ] -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Kip Murray Sent: Monday, February 9, 2015 11:00 AM To: [email protected] Subject: Re: [Jprogramming] Source of frustration And this: hh =: 3 : '[: >: i. y' hh 3 : '[: >: i. y' hh 4 |domain error: hh | [:>:i.y I think Brian's suggestion that you parenthesize the result of 13 : before applying arguments is the best way of removing your frustration. My point about parenthsizing [: > i. before applying arguments is specific to verbs defined by trains. --Kip On Monday, February 9, 2015, Linda Alvord < <mailto:[email protected]> [email protected]> wrote: > How about this: > h=: 13 :'[:>:i.y' > h > [: [: [: >: i. > > [: [: [: >: i. 4 > |domain error: scriptd > | [:[: [:>:i.4 > > Linda > > > -----Original Message----- > From: <mailto:[email protected]> [email protected] <javascript:;> > [ > <mailto:[email protected]%20%3cjavascript:;%3e> mailto:[email protected] <javascript:;>] On > Behalf Of Brian Schott > Sent: Monday, February 9, 2015 10:00 AM > To: Programming forum > Subject: Re: [Jprogramming] Source of frustration > > Linda, > > If you are willing to put parentheses around your example verbs -- > with the data outside the parens, you will not get the domain error. > > On Mon, Feb 9, 2015 at 9:54 AM, Linda Alvord <[email protected] > <javascript:;>> > wrote: > > > Suppose: ff=: 13 :'>:i.y' > > ff > > >:@i. > > Then: > > >:@i.4 > > 1 2 3 4 > > Which is what you want, more than a domain error. > > > > Linda > > > > -- > (B=) > ---------------------------------------------------------------------- > For information about J forums see > <http://www.jsoftware.com/forums.htm> http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see > <http://www.jsoftware.com/forums.htm> http://www.jsoftware.com/forums.htm > -- Sent from Gmail Mobile ---------------------------------------------------------------------- For information about J forums see <http://www.jsoftware.com/forums.htm> 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
