splitting: cleanup duplicate code.
parent
3040af0514
commit
6497dd0fe4
|
@ -77,8 +77,8 @@ PRIVATE>
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: (split) ( n seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
|
: (split) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
|
||||||
pick [
|
[ 0 ] 3dip pick [
|
||||||
swap curry [ keep 1 + swap ] curry [
|
swap curry [ keep 1 + swap ] curry [
|
||||||
[ find-from drop dup ] 2curry [ keep -rot ] curry
|
[ find-from drop dup ] 2curry [ keep -rot ] curry
|
||||||
] dip produce nip
|
] dip produce nip
|
||||||
|
@ -89,10 +89,10 @@ PRIVATE>
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: split-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
: split-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
||||||
[ 0 ] 2dip [ subseq ] (split) ; inline
|
[ subseq ] (split) ; inline
|
||||||
|
|
||||||
: split-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
: split-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
||||||
[ 0 ] 2dip [ <slice> ] (split) ; inline
|
[ <slice> ] (split) ; inline
|
||||||
|
|
||||||
: split ( seq separators -- pieces )
|
: split ( seq separators -- pieces )
|
||||||
[ member? ] curry split-when ; inline
|
[ member? ] curry split-when ; inline
|
||||||
|
|
|
@ -4,8 +4,8 @@ IN: splitting.extras
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: (split*) ( n seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
|
: (split*) ( seq quot: ( ... elt -- ... ? ) slice-quot -- pieces )
|
||||||
pick [
|
[ 0 ] 3dip pick [
|
||||||
swap curry [ [ 1 + ] when ] prepose [ 2keep ] curry
|
swap curry [ [ 1 + ] when ] prepose [ 2keep ] curry
|
||||||
[ 2dup = ] prepose [ [ 1 + ] when swap ] compose [
|
[ 2dup = ] prepose [ [ 1 + ] when swap ] compose [
|
||||||
[ find-from drop dup ] 2curry [ keep -rot ] curry
|
[ find-from drop dup ] 2curry [ keep -rot ] curry
|
||||||
|
@ -17,10 +17,10 @@ IN: splitting.extras
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: split*-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
: split*-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
||||||
[ 0 ] 2dip [ subseq ] (split*) ; inline
|
[ subseq ] (split*) ; inline
|
||||||
|
|
||||||
: split*-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
: split*-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces )
|
||||||
[ 0 ] 2dip [ <slice> ] (split*) ; inline
|
[ <slice> ] (split*) ; inline
|
||||||
|
|
||||||
: split* ( seq separators -- pieces )
|
: split* ( seq separators -- pieces )
|
||||||
[ member? ] curry split*-when ; inline
|
[ member? ] curry split*-when ; inline
|
||||||
|
|
Loading…
Reference in New Issue