sequences.snipped: adding snipped virtual sequences.

db4
John Benediktsson 2013-04-17 10:27:22 -07:00
parent 21463894e7
commit 3db55c8707
4 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1 @@
John Benediktsson

View File

@ -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

View File

@ -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

View File

@ -0,0 +1 @@
Snipped virtual sequences