split1-when ( ... seq quot: ( ... elt -- ... ? ) -- ... before after ) (original) (raw)
split1-when ( ... seq quot: ( ... elt -- ... ? ) -- ... before after )
Factor handbook » The language » Collections » Sequence operations » Splitting sequences
Prev: | split1-slice ( seq subseq -- before-slice after-slice ) |
---|---|
Next: | split1-when-slice ( ... seq quot: ( ... elt -- ... ? ) -- ... before-slice after-slice ) |
Vocabulary
splitting
Inputs
seq | a sequence |
---|---|
quot | a quotation with stack effect ( ... elt -- ... ? ) |
Outputs
before | a new sequence |
---|---|
after | a new sequence |
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.
Definition
USING: kernel math sequences ;
: split1-when
( ... seq quot: ( ... elt -- ... ? ) -- ... before after )
[ find drop ] keepd swap [ dup 1 + rot snip ] [ f ] if* ;
inline