%(+/`)(`#)(`:6) +/ % # (+/`)(`#)(`:6)
((+/`)(`#))(`:6) ----- Original Message ---- From: Brian Schott <[EMAIL PROTECTED]> To: Programming forum <[email protected]> Sent: Saturday, November 25, 2006 1:27:55 PM Subject: RE: [Jprogramming] Index replacement Dan, Ok, you got me: what in the world is k? I understand the `:6 puts together the verb train to its left. I am assuming that k produced most of the lefthand verb in the gerund form of amend in l. But I am unclear about several other things, including a) is the verb train in k a fork or a hook (if it's a fork I guess it picks up its third tine from l )? b) in the definition of k, I understand that ties (`'s) are needed to separate the verbs, but why is one tie on the left and one on the right of its verb? And if there is a third verb to make a fork, why does it not neet a tie? c) to what is (&[)("_1) in k attaching itself or waiting for or whatever? I guess the answer is the rest of l except the amend, but I cannot see how. Thank you, On Fri, 24 Nov 2006, Dan Bron wrote: + JC, + + Short answer: + + k =: (&[) ("_1) (#/.~@:]`) (`({~ ~.)) (`:6) ~ + l =: k (`(~.@:[)) (`]) } + + f =: ^&2 + v =: i.10 + ind =: 3 5 3 + + ind f l v + 0 1 2 81 4 25 6 7 8 9 + + + A couple of points. You say the result should be r=:1 2 81 4 25 6 7 8 9 but: + + (A) (#r) is 9 whereas (#v) is 10 , so I'm assuming you forgot + the first element, 0 . + + (B) You say f is 2^y but 2^5 is 32 , not 25 , so I assume + you meant y^2 (y-squared). To that end, you might want to + say f=: *: rather than f=: ^&2 . + + Since you asked for "elegant", I decided to provide a tacit solution, to prove that such can done in the language. If I were + writing this with intent of making it production code, I would probably make it explicit. Explicit code, while not as beautiful + or cool, tends to be easier to read and maintain, and in complicated examples like this, usually faster. For example, the tacit + code takes ~.x twice, which, in explicit code, could be calculated once and stored in a local name. + + -Dan + + ---------------------------------------------------------------------- + For information about J forums see http://www.jsoftware.com/forums.htm + (B=) <----------my "sig" Brian Schott Atlanta, GA, USA schott DOT bee are eye eh en AT gee em ae eye el DOT com http://schott.selfip.net/~brian/ ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
