sequences.extras: implement "insert-nth!".

db4
John Benediktsson 2012-10-23 16:10:15 -07:00
parent 896d75e305
commit 8e137839db
2 changed files with 11 additions and 3 deletions

View File

@ -149,3 +149,6 @@ IN: sequences.extras.tests
{ "" } [ { } "" 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

View File

@ -1,6 +1,6 @@
USING: accessors arrays assocs fry grouping kernel locals make
math math.order math.ranges sequences sequences.private
splitting ;
USING: accessors arrays assocs fry grouping growable kernel
locals make math math.order math.ranges sequences
sequences.private splitting ;
FROM: sequences => change-nth ;
IN: sequences.extras
@ -339,3 +339,8 @@ PRIVATE>
: map-product ( ... seq quot: ( ... elt -- ... n ) -- ... n )
[ 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 ;