sequences.extras: cleanup, make reverse-as faster.

db4
John Benediktsson 2013-05-01 14:09:34 -07:00
parent 9243d39ef5
commit bcce56f46b
1 changed files with 7 additions and 2 deletions

View File

@ -361,7 +361,8 @@ INSTANCE: odds immutable-sequence
<PRIVATE
: (reverse) ( seq -- newseq )
dup [ length ] keep new-sequence [ 0 swap copy ] keep reverse! ;
dup [ length ] keep new-sequence
[ 0 swap copy-unsafe ] keep reverse! ;
PRIVATE>
@ -391,14 +392,18 @@ PRIVATE>
]
] keep dup branch? [ drop f ] unless make ;
<PRIVATE
: (map-find-index) ( seq quot find-quot -- result elt index )
[ [ f ] 2dip [ [ nip ] 2dip call dup ] curry ] dip call
[ [ [ drop f ] unless ] keep ] dip ; inline
PRIVATE>
: map-find-index ( ... seq quot: ( ... elt index -- ... result/f ) -- ... result elt index )
[ find-index ] (map-find-index) ; inline
: filter-length ( seq n -- seq' ) swap [ length = ] with filter ;
: filter-length ( seq n -- seq' ) '[ length _ = ] filter ;
: all-shortest ( seqs -- seqs' ) dup shortest length filter-length ;