If I wanted to have "cut" without overtake, I'd be happier, upon encountering the code later, if I had written a well-named helper verb - maybe even documented it - rather than spend the time trying to puzzle out what I had earlier intended with a non-obvious use of "cut".
On Tue, Jan 1, 2019, 14:54 'Pascal Jasmin' via Programming < [email protected] wrote: > seems better than what I've been doing, > > take > (*@[ * |@[ <. #@:]) {. ] > > > > $ 2 take i.0 > 0 > > take =: ];.0 :: (i.@(0"_) ) > > $ 2 take i.0 > > 0 > > > it loses negative indexing though, so > > take =: (];.0)`(];.0)`(] {.~ _1: * |@[ <. #@:])@.(*@[)^:(0 < #@]) > > _7 take i.6 > 0 1 2 3 4 5 > _3 take i.6 > 3 4 5 > > _3 take i.0 > > > 3 take i.2 2 > 0 1 > 2 3 > > > ________________________________ > From: Igor Zhuravlov <[email protected]> > To: Jprogramming <[email protected]> > Sent: Saturday, December 29, 2018 9:02 PM > Subject: [Jprogramming] Cut (;.) behavior consistency > > > > A Cut (;.) is a convenient alternative to Take ({.) when there is a need > to ignore overtake: > > > 4 {. i. 3 > > 0 1 2 0 > > 4 ];.0 i. 3 > > 0 1 2 > > > But is Cut's behavior consistent?: > > > 2 ];.0 i. 2 > > 0 1 NB. ok > > 2 ];.0 i. 1 > > 0 NB. ok > > 2 ];.0 i. 0 > > |index error > > | 2 ];.0 i.0 > > > Shouldn't result be an empty list instead of error? However, the following > works: > > > 0 ];.0 i. 0 > > NB. empty list, ok > > > -- > > Regards, > > Igor > > ---------------------------------------------------------------------- > > 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
