Related: ic5 =: [: , [: j./&i:/ +. ic5 1j2 _1j_2 _1j_1 _1 _1j1 _1j2 0j_2 0j_1 0 0j1 0j2 1j_2 1j_1 1 1j1 1j2
Kip Sent from my iPad On Jan 23, 2013, at 3:06 AM, "Linda Alvord" <lindaalv...@verizon.net> wrote: > Also: > > g=: 13 :',(i:0{+.y)j./i:1{+.y' > g > [: , ([: i: 0 { +.) j./ [: i: 1 { +. > g 1j2 > _1j_2 _1j_1 _1 _1j1 _1j2 0j_2 0j_1 0 0j1 0j2 1j_2 1j_1 1 1j1 1j2 > > > Linda > > -----Original Message----- > From: programming-boun...@forums.jsoftware.com > [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda Alvord > Sent: Wednesday, January 23, 2013 2:54 AM > To: programm...@jsoftware.com > Subject: Re: [Jprogramming] [Jprogrammingou Hermitian from triangular > > A small forest: > > 5!:4 <'ic' > -- [: > +- , > │ -- [: > │ +- i: > --+ ------+ -- 9 > │ │ L- & -+- o. > │ │ > │ +- / --- j. > L----+ > │ -- [: > │ +- i: > L-----+ -- 11 > L- & -+- o. > 5!:4 <'ic2' > -- [: > +- , > --+ -- / --- j. > │ -- / --- & -+- i: > L- @ -+- +. > 5!:4 <'ic4' > -- [: > +- , > │ -- [: > --+ │ -- i: > │ │ -- @ -+- [ > │ │ │ > L----+ +- / --- j. > +- / ---+ > │ │ -- i: > │ L- @ -+- ] > L- +. > 5!:4 <'f' > -- [: > +- , > │ -- [: > │ │ -- [: > --+ │ ------+- i: > │ │ │ L- [ > │ │ │ > L----+- / ---+- / --- j. > │ │ > │ │ -- [: > │ L-----+- i: > │ L- ] > L- +. > > Linda > > -----Original Message----- > From: programming-boun...@forums.jsoftware.com > [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Linda Alvord > Sent: Wednesday, January 23, 2013 2:48 AM > To: programm...@jsoftware.com > Subject: Re: [Jprogramming] [Jprogrammingou Hermitian from triangular > > This wasn't easy, but I'm finally peaceful! Thanks to all for your prodding > and coaching. > > ic=:[: , ([: i: 9&o.) j./ ([: i: 11&o.) > ic2=:[: ,j./&i:/@+. > ic4=:[: , [: (i:@[ j./ i:@])/ +. NB. Kip > f=: 13 :',([:(([:i:[)j./[:i:])/+.)y' > > ic > [: , ([: i: 9&o.) j./ [: i: 11&o. > ic2 > [: , j./&i:/@+. > ic4 > [: , [: (i:@[ j./ i:@])/ +. > f > [: , [: (([: i: [) j./ [: i: ])/ +. > > ic 1j2 > _1j_2 _1j_1 _1 _1j1 _1j2 0j_2 0j_1 0 0j1 0j2 1j_2 1j_1 1 1j1 1j2 > ic2 1j2 > _1j_2 _1j_1 _1 _1j1 _1j2 0j_2 0j_1 0 0j1 0j2 1j_2 1j_1 1 1j1 1j2 > ic4 1j2 > _1j_2 _1j_1 _1 _1j1 _1j2 0j_2 0j_1 0 0j1 0j2 1j_2 1j_1 1 1j1 1j2 > f 1j2 > _1j_2 _1j_1 _1 _1j1 _1j2 0j_2 0j_1 0 0j1 0j2 1j_2 1j_1 1 1j1 1j2 > > Linda > > Sent: Tuesday, January 22, 2013 1:56 AM > To: programm...@jsoftware.com > Subject: Re: [Jprogramming] [Jprogrammingou Hermitian from triangular > > Linda, here I remove conjunctions @ and & from ic2, leading to ic4 not ic. > Two new @'s creep in but they would be easy to remove! > > 9!:3 [ 6 NB. fully parenthesized display > > ic2 > [: , ((((j./)&i:)/)@+.) > > ic4 =: [: , [: ((j./)&i:)/ +. NB. remove @ > > ic4 =: [: , [: (i:@[ j./ i:@])/ +. NB. remove & > > ic4 1j2 > _1j_2 _1j_1 _1 _1j1 _1j2 0j_2 0j_1 0 0j1 0j2 1j_2 1j_1 1 1j1 1j2 > > Kip > > Sent from my iPad > > > On Jan 21, 2013, at 9:49 PM, "Linda Alvord" <lindaalv...@verizon.net> wrote: > >> It would be most helpful if you would give a sequence of legitimate >> substitutions which can be made in an orderly fashion to work "backwards" >> from ic2 to ic . If you could then go from ic to an explicit >> definition that would be great. >> >> I start with an explicit definition to write statements that work on >> real data. Later it is possible to simplify. When I can't understand >> a terse expression, I need to "work backwards" to make it >> understandable. I try to use definitions for @ and @. and & as >> that makes right to left execution more clear. It is obvious from >> this example that it becomes Important to include rank somehow. >> >> Thanks in advance if you can do this. >> >> Linda >> >> : Monday, January 21, 2013 10:19 PM >> To: programm...@jsoftware.como >> Subject: Re: [Jprogramming] [Jprogrammingou Hermitian from triangular >> >> What would be most helpful >> >> -----Original Message----- >> From: programming-boun...@forums.jsoftware.com >> [mailto:programming-boun...@forums.jsoftware.com] On Behalf Of Dan >> Bron >> Sent: Monday, January 21, 2013 2:08 PM >> To: programm...@jsoftware.com >> Subject: Re: [Jprogramming] [Jprogrammingou Hermitian from triangular >> >> Linda wrote: >>> ic >>> [: , ([: i: 9&o.) j./ [: i: 11&o. >>> ic2 >>> [: , j./&i:/@+. >>> f >>> [: , [: j./&i:/ +. >>> g >>> [: j./ [: i: +. >> >> It appears to me that as you move from ic2 to f to g, you are simply >> deleting words (the kind that you don't like). >> >> If you go back to the email where ic2 was developed from ic, you'll >> see that each of the words in ic2 was introduced deliberately, and >> none of the words is superfluous. In fact, it was the very words you >> arbitrarily deleted which the email specifically introduced in order >> to simplify ic to ic2, without losing functionality. So, if you want >> to remove those words, you must do it carefully. In fact, if you take >> care to do this properly, and gradually expand the definition of ic2 >> until it has your preferred, conjunction-free form, the result will be >> ic! In effect, you'll end up working through the ic->ic2 >> transformation > backwards. >> >> You can't have it both ways: the ic2 form is simpler and cleaner, but >> requires you to use conjunctions. The ic form is composed solely of >> verb trains, but is not as concise, and can't be read left-to-right or >> executed right-to-left. That was the point of my original post: that >> conjunctions have their benefits, and perhaps it's worth reconsidering >> your aversion to them. >> >> Anyway, arbitrarily deleting words you don't like is akin to >> translating a sentence from Chinese to English by transliterating the >> words you know, and simply ignoring the ones that you don't (or don't >> have a simple, direct translation). That won't work. >> >> And, while it is good that you tested your changes along the way, >> given the verbs' infinite domain, no amount of tests will ever prove >> their correctness. As you discovered, it only takes one >> counterexample to destroy the equivalence. You need to bring some >> theory > to the table. >> >> Let me give you an example. If you look at ic, Kip's original: >> >> 13 : ',(i: 9 o. y) j./ i: 11 o. y' >> [: , ([: i: 9 o. ]) j./ [: i: 11 o. ] >> >> It's quite clear - even just visually - that his j./ has two >> arguments: one on the left, and one on the right. Whereas, if you >> look at > your g: >> >> 13 :'j./ i:+.y' >> [: j./ [: i: +. >> >> it's evident that your j./ only has one argument, on the right. So g >> can't be doing the same thing as ic (or, by implication, ic2). >> >> This is the kind of analysis you need to do if you want to simplify J >> verbs or phrases. You can't just randomly delete words you don't >> like. But moreover, it may be worth your while to reconsider eschewing >> these words in the first place. I noticed you picked up on ic2, rather >> than ic, to use as a basis for your own approach, even though the >> former is conjunction-rich and the latter conjunction-free. And >> furthermore, while you deleted the / that followed i:, you retained >> the / following j. - apparently because you thought it expressed some > concept clearly. >> >> -Dan >> >> PS: >> >> Linda also wrote: >>> However, I do not understand how ic and ic2 agree when they don't! >> >> In fact, they do. If you want to understand how, then [1] walks >> through that in some detail. >> >> This is despite the observation Raul made earlier: >> >>> I will agree that they do not agree [at rank 1 and higher] >> >> Which was specifically called out in the original email: >> >>> NB. But... >>> (ic2 -: ic) 1 2 1j2 0j2 >>> 0 >>> >>> NB. When we move beyond the original scope of a single, NB. scalar >>> input the answers differ. What gives? >>> NB. Left as an exercise for the reader. >> >> And in the follow-ups, e.g. from Kip: >> >>> About your closing question, consider >>> (ic2"0 -: ic"0) 1 2 1j2 0j2 >>> 1 >>> >>> Monadic i: has rank 0 and for reasonable behavior I think ic and ic2 >>> should be used with rank 0 on vector arguments. >> >> [1] Development of ic2 from ic: >> >> http://www.jsoftware.com/pipermail/programming/2013-January/031131.htm >> l >> >> >> ---------------------------------------------------------------------- >> 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 > ---------------------------------------------------------------------- > 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