sequences.snipped: adding snipped virtual sequences.
parent
21463894e7
commit
3db55c8707
|
@ -0,0 +1 @@
|
||||||
|
John Benediktsson
|
|
@ -0,0 +1,9 @@
|
||||||
|
! Copyright (C) 2013 John Benediktsson
|
||||||
|
! See http://factorcode.org/license.txt for BSD license
|
||||||
|
USING: arrays sequences tools.test ;
|
||||||
|
IN: sequences.snipped
|
||||||
|
|
||||||
|
{ { 0 1 2 5 6 } } [ 3 5 7 iota <snipped> >array ] unit-test
|
||||||
|
{ { 0 1 2 } } [ 3 10 7 iota <snipped> >array ] unit-test
|
||||||
|
{ { 6 } } [ -1 5 7 iota <snipped> >array ] unit-test
|
||||||
|
{ { } } [ -1 10 7 iota <snipped> >array ] unit-test
|
|
@ -0,0 +1,25 @@
|
||||||
|
! Copyright (C) 2013 John Benediktsson
|
||||||
|
! See http://factorcode.org/license.txt for BSD license
|
||||||
|
USING: accessors kernel math math.order sequences ;
|
||||||
|
IN: sequences.snipped
|
||||||
|
|
||||||
|
TUPLE: snipped
|
||||||
|
{ seq sequence read-only }
|
||||||
|
{ from integer read-only }
|
||||||
|
{ length integer read-only } ;
|
||||||
|
|
||||||
|
: <snipped> ( from to seq -- snipped )
|
||||||
|
[ length min ] keep -rot over - snipped boa ;
|
||||||
|
|
||||||
|
: <removed> ( i seq -- snipped )
|
||||||
|
[ dup 1 + ] dip <snipped> ;
|
||||||
|
|
||||||
|
M: snipped length [ seq>> length ] [ length>> ] bi [-] ;
|
||||||
|
|
||||||
|
M: snipped virtual@
|
||||||
|
[ [ from>> dupd >= ] keep [ length>> + ] curry when ]
|
||||||
|
[ seq>> ] bi ;
|
||||||
|
|
||||||
|
M: snipped virtual-exemplar seq>> ;
|
||||||
|
|
||||||
|
INSTANCE: snipped virtual-sequence
|
|
@ -0,0 +1 @@
|
||||||
|
Snipped virtual sequences
|
Loading…
Reference in New Issue