: collect ( n quot into -- )
[ [ keep ] dip set-nth-unsafe ] 2curry each-integer ; inline
-: sequence-index-iterator ( seq quot -- n quot' )
+: sequence-index-operator ( seq quot -- n quot' )
[ length-iterator [ keep ] curry ] dip compose ; inline
: map-into ( seq quot into -- )
'[ _ _ (find) ] [ 2drop f f ] if ; inline
: (find-index) ( seq quot quot' -- i elt )
- pick [ [ sequence-index-iterator ] dip call ] dip finish-find ; inline
+ pick [ [ sequence-index-operator ] dip call ] dip finish-find ; inline
: (find-index-from) ( n seq quot quot' -- i elt )
[ 2dup bounds-check? ] 2dip
[ dup ] swap [ keep ] curry produce nip ; inline
: each-index ( ... seq quot: ( ... elt index -- ... ) -- ... )
- sequence-index-iterator each-integer ; inline
+ sequence-index-operator each-integer ; inline
: map-index-as ( ... seq quot: ( ... elt index -- ... newelt ) exemplar -- ... newseq )
[ dup length <iota> ] 2dip 2map-as ; inline
] [ 3drop f ] if ; inline
: map-index! ( ... seq quot: ( ... elt index -- ... newelt ) -- ... seq )
- over [ [ sequence-index-iterator ] dip collect ] keep ; inline
+ over [ [ sequence-index-operator ] dip collect ] keep ; inline
<PRIVATE
[ length 1 - swap - ] [ nth ] bi ; inline
: each-index-from ( ... seq quot: ( ... elt index -- ... ) i -- ... )
- -rot sequence-index-iterator each-integer-from ; inline
+ -rot sequence-index-operator each-integer-from ; inline
<PRIVATE