1 USING: kernel sequences ;
4 : reach ( a b c d -- a b c d a )
5 >r pick r> swap ; inline
7 : roll ( a b c d -- b c d a )
8 >r rot r> swap ; inline
10 : -roll ( a b c d -- d a b c )
11 -rot >r >r swap r> r> ; inline
13 : 2over ( a b c -- a b c a b )
16 : 2pick ( a b c d -- a b c d a b )
19 : nipd ( a b c -- b c )
22 : 3nip ( a b c d -- d )
25 : keepd ( obj obj quot -- obj )
26 pick >r call r> ; inline
28 : with2 ( obj obj quot elt -- obj obj quot )
29 >r 3dup r> -rot >r >r swap >r swap call r> r> r> ; inline
31 : map-with2 ( obj obj list quot -- newseq )
32 swap [ with2 roll ] map 3nip ; inline
34 : each-with2 ( obj obj list quot -- )
35 swap [ with2 roll ] map 3drop ;