USING: kernel math sequences ; IN: splitting.extras : split*-when ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces ) [ 0 ] 2dip [ subseq ] (split*) ; inline : split*-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... pieces ) [ 0 ] 2dip [ ] (split*) ; inline : split* ( seq separators -- pieces ) [ member? ] curry split*-when ; inline : split*-slice ( seq separators -- pieces ) [ member? ] curry split*-when-slice ; inline : split-find ( seq quot: ( seq -- i ) -- pieces ) [ dup empty? not ] swap [ [ dup ] ] dip [ [ [ 1 ] when-zero cut-slice swap ] [ f swap ] if* ] compose compose produce nip ; inline