stack Module

clear

a ⇒ ∅

Empties the stack.

cleave

a1 (quot*) ⇒ a*

Applies each quotation contained in the first element to the second element a1.

cons

a1 (a*) ⇒ (a1 a*)

Prepends a1 to the quotation on top of the stack.

dip

a1 (a2) ⇒ a* a1

Removes the first and second element from the stack, dequotes the first element, and restores the second element.

dup

a1 ⇒ a1 a1

Duplicates the first element on the stack.

get

∅ ⇒ (a*)

Puts a quotation containing the contents of the stack on the stack.

keep

a1 quot ⇒ a* a1

Removes the first element from the stack, dequotes it, and restores the second element.

nip

a1 a2 ⇒ a2

Removes the second element from the stack.

over

a1 a2 ⇒ a1 a2 a1

Pushes a copy of the second element on top of the stack.

pick

a1 a2 a3 ⇒ a1 a2 a3 a1

Pushes a copy of the third element on top of the stack.

pop

a ⇒ ∅

Removes the first element from the stack.

rolldown

a1 a2 a3 ⇒ a2 a3 a1

Moves the third element in first position, the second in third position and the the first in second position.

rollup

a1 a2 a3 ⇒ a3 a2 a1

Moves the third and second element into second and third position and moves the first element into third position.

set

quot ⇒ a*

Substitute the existing stack with the contents of quot.

sip

quot1 quot2 ⇒ a* quot1

Saves the quot1, dequotes quot2, and restores quot1.

spread

a* (quot*) ⇒ a*

Applies each quotation contained in the first element to each subsequent corresponding element.

swap

a1 a2 ⇒ a2 a1

Swaps the first two elements on the stack.

swons

(a*) a1 ⇒ (a1 a*)

Prepends a1 to the quotation that follows it.