sequences.extras: experimenting with take-while and drop-while.
parent
9a34af7381
commit
a8a94c3960
|
@ -245,3 +245,8 @@ IN: sequences.extras.tests
|
||||||
{ }
|
{ }
|
||||||
[ "test:" all-words [ name>> over prepend ] map-zip 2drop ] unit-test
|
[ "test:" all-words [ name>> over prepend ] map-zip 2drop ] unit-test
|
||||||
|
|
||||||
|
{ { 0 1 2 3 } } [ 8 iota [ 4 < ] take-while ] unit-test
|
||||||
|
{ { } } [ { 15 16 } [ 4 < ] take-while ] unit-test
|
||||||
|
|
||||||
|
{ { 4 5 6 7 } } [ 8 iota [ 4 < ] drop-while ] unit-test
|
||||||
|
{ { 15 16 } } [ { 15 16 } [ 4 < ] drop-while ] unit-test
|
||||||
|
|
|
@ -602,3 +602,9 @@ PRIVATE>
|
||||||
|
|
||||||
: map-values ( assoc quot: ( value -- value' ) -- assoc )
|
: map-values ( assoc quot: ( value -- value' ) -- assoc )
|
||||||
'[ swap _ dip swap ] assoc-map ; inline
|
'[ swap _ dip swap ] assoc-map ; inline
|
||||||
|
|
||||||
|
: take-while ( ... seq quot: ( ... elt -- ... ? ) -- head-slice )
|
||||||
|
[ '[ @ not ] find drop ] 2keep drop swap 0 or head-slice ; inline
|
||||||
|
|
||||||
|
: drop-while ( ... seq quot: ( ... elt -- ... ? ) -- tail-slice )
|
||||||
|
[ '[ @ not ] find drop ] 2keep drop swap 0 or tail-slice ; inline
|
||||||
|
|
Loading…
Reference in New Issue