: if-empty ( ..a seq quot1: ( ..a -- ..b ) quot2: ( ..a seq -- ..b ) -- ..b )
[ dup empty? ] [ [ drop ] prepose ] [ ] tri* if ; inline
-: when-empty ( seq quot -- ) [ ] if-empty ; inline
-
-: unless-empty ( seq quot -- ) [ ] swap if-empty ; inline
+: when-empty ( ... seq quot: ( ... -- ... obj ) -- ... seq/obj ) [ ] if-empty ; inline
+: unless-empty ( ... seq quot: ( ... seq -- ... ) -- ... ) [ ] swap if-empty ; inline
: delete-all ( seq -- ) 0 swap set-length ;
[ setup-3each ] dip compose ; inline
: element/index ( i/f seq -- elt/f i/f )
- '[ [ _ nth ] [ f ] if* ] keep ;
+ '[ [ _ nth ] [ f ] if* ] keep ; inline
: index/element ( i/f seq -- i/f elt/f )
- dupd '[ _ nth ] [ f ] if* ;
+ dupd '[ _ nth ] [ f ] if* ; inline
: (accumulate) ( seq identity quot -- identity seq quot' )
swapd [ keepd ] curry ; inline
: subseq-index ( seq subseq -- i/f ) [ 0 ] 2dip subseq-index-from ; inline
-: subseq-index? ( seq subseq -- ? ) subseq-index >boolean ; inline
+: subseq-of? ( seq subseq -- ? ) subseq-index >boolean ; inline
: subseq-start-from ( subseq seq n -- i/f )
spin subseq-index-from ; inline deprecated