splitting: use unsafe in split-when, simplify split-indices.

db4
John Benediktsson 2015-07-17 08:00:24 -07:00
parent 9fad4187f3
commit 573ac9c9e9
1 changed files with 7 additions and 5 deletions

View File

@ -1,6 +1,7 @@
! Copyright (C) 2005, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: arrays kernel math sequences strings sbufs ;
USING: arrays kernel math sequences sequences.private strings
sbufs ;
IN: splitting
<PRIVATE
@ -89,10 +90,10 @@ PRIVATE>
PRIVATE>
: split-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
[ subseq ] (split) ; inline
[ subseq-unsafe ] (split) ; inline
: split-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
[ <slice> ] (split) ; inline
[ <slice-unsafe> ] (split) ; inline
: split ( seq separators -- pieces )
[ member? ] curry split-when ; inline
@ -101,8 +102,9 @@ PRIVATE>
[ member? ] curry split-when-slice ; inline
: split-indices ( seq indices -- pieces )
over length suffix 0 swap [ dup swapd 2array ] map nip
[ first2 rot subseq ] with map ;
over length suffix 0 swap [
[ pick subseq ] keep swap
] map 2nip ;
GENERIC: string-lines ( str -- seq )