1 USING: kernel sequences sequences.private math ;
6 : iterate-seq >r dup length swap r> ; inline
8 : (map-next) ( i seq quot -- )
9 ! this uses O(n) more bounds checks than is really necessary
10 >r [ >r 1+ r> ?nth ] 2keep nth-unsafe r> call ; inline
14 : each-next ( seq quot -- )
15 ! quot: next-elt elt --
16 iterate-seq [ (map-next) ] 2curry each-integer ; inline
18 : map-next ( seq quot -- newseq )
19 ! quot: next-elt elt -- newelt
20 over dup length swap new-sequence >r
21 iterate-seq [ (map-next) ] 2curry
22 r> [ collect ] keep ; inline