Ah... takecut=:*@[ #inv ] </.~ +/\@[ I. #\@] 0 0 3 3 0 2 takecut i.7 ┌┬┬─────┬─────┬┬─┐ │││0 1 2│3 4 5││6│ └┴┴─────┴─────┴┴─┘ f=: 13 :'y </.~(+/\x) I. #\y' f ] </.~ ([: +/\ [) I. [: #\ ] tc=:([:*[) #inv [ f ] tc ([: * [) #^:_1 [ f ] 0 0 3 3 0 2 tc i.7 ┌┬┬─────┬─────┬┬─┐ │││0 1 2│3 4 5││6│ └┴┴─────┴─────┴┴─┘ Thanks Kip. I've needed coaching to get through one of these sentences before. Maybe next time I'll remember your advice without an assist.
I was surprised by the "translation" of inv . Linda -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of km Sent: Wednesday, September 19, 2012 11:39 PM To: [email protected] Subject: Re: [Jprogramming] cut y in segments of each size being x's items Linda, the first set of parentheses in takecut encloses a verb I'll name Sam. The [ and ] inside Sam refer to Sam's arguments, which may not be the same as the arguments to takecut. Kip Murray Sent from my iPad On Sep 19, 2012, at 9:25 PM, "Linda Alvord" <[email protected]> wrote: > Raul, What causes the problem when you replace [ with 2 3 1 1 and ] > by i.7 ? I thought it might work if I removed @ but it didn't help. > > takecut=: [ (*@[ #inv ] </.~ +/\@[ I. #\@])(+/@[ {. ]) > 2 3 1 1 takecut i.7 > ┌───┬─────┬─┬─┐ > │0 1│2 3 4│5│6│ > └───┴─────┴─┴─┘ > > 2 3 1 1 (*@ 2 3 1 1 #inv (i.7) </.~ +/\@2 3 1 1 I. #\@(i.7))(+/@ 2 3 > 1 1 {. i.7) > |domain error > | 2 3 1 1(*@2 3 1 1#inv(i.7)</.~+/\@2 3 1 1 I.#\@(i.7))( +/@2 3 1 1{.i.7) > > Linda > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Raul > Miller > Sent: Tuesday, September 18, 2012 10:12 AM > To: [email protected] > Subject: Re: [Jprogramming] cut y in segments of each size being x's > items > > P.S. if you want to overtake (instead of length error when the right arg does > not contain enough elements): > > takecut=: [ (*@[ #inv ] </.~ +/\@[ I. #\@]) (+/@[ {. ]) > > -- > Raul > > On Tue, Sep 18, 2012 at 10:08 AM, Raul Miller <[email protected]> wrote: >> On Mon, Sep 17, 2012 at 11:14 PM, June Kim (김창준) <[email protected]> wrote: >>> It's not so difficult. However, generalizing takecut into allowing 0 >>> as an item in x seems complicated. That is, >>> >>> 3 0 2 2 takecut i.7 >>> +-----++---+---+ >>> |0 1 2||3 4|5 6| >>> +-----++---+---+ >>> 0 0 4 3 0 takecut i.7 >>> +++-------+-----++ >>> |||0 1 2 3|4 5 6|| >>> +++-------+-----++ >>> >>> Any ideas for simple solutions? >> >> takecut=: *@[ #inv ] </.~ +/\@[ I. #\@] >> 0 0 3 3 0 2 takecut i. 7 >> ┌┬┬─────┬─────┬┬─┐ >> │││0 1 2│3 4 5││6│ >> └┴┴─────┴─────┴┴─┘ >> >> -- >> Raul > ---------------------------------------------------------------------- > 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
