splitting: cleanup duplicate code.

db4
John Benediktsson 2013-06-25 15:17:00 -07:00
parent 3040af0514
commit 6497dd0fe4
2 changed files with 8 additions and 8 deletions

View File

@ -77,8 +77,8 @@ PRIVATE>
<PRIVATE
: (split) ( n seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
pick [
: (split) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
[ 0 ] 3dip pick [
swap curry [ keep 1 + swap ] curry [
[ find-from drop dup ] 2curry [ keep -rot ] curry
] dip produce nip
@ -89,10 +89,10 @@ PRIVATE>
PRIVATE>
: split-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
[ 0 ] 2dip [ subseq ] (split) ; inline
[ subseq ] (split) ; inline
: split-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
[ 0 ] 2dip [ <slice> ] (split) ; inline
[ <slice> ] (split) ; inline
: split ( seq separators -- pieces )
[ member? ] curry split-when ; inline

View File

@ -4,8 +4,8 @@ IN: splitting.extras
<PRIVATE
: (split*) ( n seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
pick [
: (split*) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
[ 0 ] 3dip pick [
swap curry [ [ 1 + ] when ] prepose [ 2keep ] curry
[ 2dup = ] prepose [ [ 1 + ] when swap ] compose [
[ find-from drop dup ] 2curry [ keep -rot ] curry
@ -17,10 +17,10 @@ IN: splitting.extras
PRIVATE>
: split*-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
[ 0 ] 2dip [ subseq ] (split*) ; inline
[ subseq ] (split*) ; inline
: split*-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
[ 0 ] 2dip [ <slice> ] (split*) ; inline
[ <slice> ] (split*) ; inline
: split* ( seq separators -- pieces )
[ member? ] curry split*-when ; inline