]> gitweb.factorcode.org Git - factor.git/blob - libs/shuffle/shuffle.factor
more sql changes
[factor.git] / libs / shuffle / shuffle.factor
1 USING: kernel sequences ;
2 IN: shuffle
3
4 : reach ( a b c d -- a b c d a )
5     >r pick r> swap ; inline
6
7 : roll ( a b c d -- b c d a )
8     >r rot r> swap ; inline
9
10 : -roll ( a b c d -- d a b c )
11     -rot >r >r swap r> r> ; inline
12
13 : 2over ( a b c -- a b c a b )
14     pick pick ; inline
15
16 : 2pick ( a b c d -- a b c d a b )
17     reach reach ; inline
18
19 : nipd ( a b c -- b c )
20     rot drop ; inline
21
22 : 3nip ( a b c d -- d )
23     2nip nip ; inline
24
25 : keepd ( obj obj quot -- obj )
26     pick >r call r> ; inline
27
28 : with2 ( obj obj quot elt -- obj obj quot )
29     >r 3dup r> -rot >r >r swap >r swap call r> r> r> ; inline
30
31 : map-with2 ( obj obj list quot -- newseq )
32     swap [ with2 roll ] map 3nip ; inline
33
34 : each-with2 ( obj obj list quot -- )
35     swap [ with2 roll ] map 3drop ;
36