sequences.extras: implement "insert-nth!".
parent
896d75e305
commit
8e137839db
|
@ -149,3 +149,6 @@ IN: sequences.extras.tests
|
||||||
|
|
||||||
{ "" } [ { } "" reverse-as ] unit-test
|
{ "" } [ { } "" reverse-as ] unit-test
|
||||||
{ "ABC" } [ { 67 66 65 } "" reverse-as ] unit-test
|
{ "ABC" } [ { 67 66 65 } "" reverse-as ] unit-test
|
||||||
|
|
||||||
|
{ V{ 1 } } [ 1 0 V{ } [ insert-nth! ] keep ] unit-test
|
||||||
|
{ V{ 1 2 3 4 } } [ 2 1 V{ 1 3 4 } [ insert-nth! ] keep ] unit-test
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
USING: accessors arrays assocs fry grouping kernel locals make
|
USING: accessors arrays assocs fry grouping growable kernel
|
||||||
math math.order math.ranges sequences sequences.private
|
locals make math math.order math.ranges sequences
|
||||||
splitting ;
|
sequences.private splitting ;
|
||||||
FROM: sequences => change-nth ;
|
FROM: sequences => change-nth ;
|
||||||
IN: sequences.extras
|
IN: sequences.extras
|
||||||
|
|
||||||
|
@ -339,3 +339,8 @@ PRIVATE>
|
||||||
|
|
||||||
: map-product ( ... seq quot: ( ... elt -- ... n ) -- ... n )
|
: map-product ( ... seq quot: ( ... elt -- ... n ) -- ... n )
|
||||||
[ 1 ] 2dip [ dip * ] curry [ swap ] prepose each ; inline
|
[ 1 ] 2dip [ dip * ] curry [ swap ] prepose each ; inline
|
||||||
|
|
||||||
|
: insert-nth! ( elt n seq -- )
|
||||||
|
[ length ] keep ensure swap pick (a,b]
|
||||||
|
over '[ [ 1 + ] keep _ move-unsafe ] each
|
||||||
|
set-nth-unsafe ;
|
||||||
|
|
Loading…
Reference in New Issue