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" <[email protected]> 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: [email protected]
> [mailto:[email protected]] On Behalf Of Linda Alvord
> Sent: Wednesday, January 23, 2013 2:54 AM
> To: [email protected]
> 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: [email protected]
> [mailto:[email protected]] On Behalf Of Linda Alvord
> Sent: Wednesday, January 23, 2013 2:48 AM
> To: [email protected]
> 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: [email protected]
> 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" <[email protected]> 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: [email protected]
>> Subject: Re: [Jprogramming] [Jprogrammingou Hermitian from triangular
>>
>> What would be most helpful
>>
>> -----Original Message-----
>> From: [email protected]
>> [mailto:[email protected]] On Behalf Of Dan
>> Bron
>> Sent: Monday, January 21, 2013 2:08 PM
>> To: [email protected]
>> 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