2dup length >= [
3drop
] [
- f pick pick set-nth-unsafe >r over + r> clear-flags
+ f 2over set-nth-unsafe >r over + r> clear-flags
] if ; inline
: (nsieve) ( count i seq -- count )
] if ;
: tak ( x y z -- t )
- pick pick swap < [
+ 2over swap < [
[ rot 1- -rot tak ] 3keep
[ -rot 1- -rot tak ] 3keep
1- -rot tak
] if ;
: each-line ( from to quot -- )
- pick pick = [
+ 2over = [
3drop
] [
>r [ first ] 2apply 1+ dup <slice> r> each
} cond ;
: (read-frame) ( id -- frame )
- read-frame-size read-frame-flags pick pick read-frame-data <frame> ;
+ read-frame-size read-frame-flags 2over read-frame-data <frame> ;
: read-frame ( -- frame/f )
read-frame-id dup good-frame-id? [ (read-frame) ] [ drop f ] if ;
: normalize ( u -- v ) dup norm v/n ;
: set-axis ( u v axis -- w )
- dup length [ >r zero? pick pick ? r> swap nth ] 2map 2nip ;
+ dup length [ >r zero? 2over ? r> swap nth ] 2map 2nip ;
HINTS: vneg { float-array } { array } ;
HINTS: norm-sq { float-array } { array } ;
[ [ >upper ] 2apply ] when sequence= ;
: string-head? ( str head ignore-case -- ? )
- pick pick shorter? [
+ 2over shorter? [
3drop f
] [
>r [ length head-slice ] keep r> string=
{ [ t ] [ assume ] }
} cond ;
-: solve ( x y -- ) 9 [ 1+ pick pick attempt ] each 2drop ;
+: solve ( x y -- ) 9 [ 1+ 2over attempt ] each 2drop ;
: board. ( board -- )
standard-table-style [
current-rule-set rule-set-keywords ;
: token, ( from to id -- )
- pick pick = [ 3drop ] [ >r line get subseq r> <token> , ] if ;
+ 2over = [ 3drop ] [ >r line get subseq r> <token> , ] if ;
: prev-token, ( id -- )
>r last-offset get position get r> token,