split1-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... before-slice after-slice )
Factor handbook » The language » Collections » Sequence operations » Splitting sequences

Prev:split1-when ( ... seq quot: ( ... elt -- ... ? ) -- ... before after )
Next:split1-last ( seq subseq -- before after )


Vocabulary
splitting

Inputs
seqa sequence
quota quotation with stack effect ( ... elt -- ... ? )


Outputs
before-slicea slice
after-slicea slice


Word description
Splits seq at the first occurrence of an element for which quot gives a true output and outputs the pieces before and after the split as slices. If subseq does not occur in seq, then before is just seq and after is f.

Definition


: split1-when-slice
( ... seq quot: ( ... elt -- ... ? ) -- ... before-slice after-slice )
[ find drop ] keepd swap
[ dup 1 + rot snip-slice ] [ f ] if* ; inline