HELP: dupd ( x y -- x x y ) $complex-shuffle ;
HELP: swapd ( x y z -- y x z ) $complex-shuffle ;
HELP: tuck ( x y -- y x y ) $complex-shuffle ;
-HELP: roll $complex-shuffle ;
-HELP: -roll $complex-shuffle ;
HELP: datastack ( -- ds )
{ $values { "ds" array } }
"[ p ] [ q ] 3bi"
"3dup p q"
}
- "If " { $snippet "[ p ]" } " and " { $snippet "[ q ]" } " have stack effect " { $snippet "( x y z -- w )" } ", then the following two lines are equivalent:"
- { $code
- "[ p ] [ q ] 3bi"
- "3dup p -roll q"
- }
"In general, the following two lines are equivalent:"
{ $code
"[ p ] [ q ] 3bi"
swapd
rot
-rot
- roll
- -roll
spin
} ;