Files
Noja/samples/gang2.noja
T

36 lines
535 B
Plaintext

stack = {count: 0, head: none};
fun push(stack, value)
{
node = {prev: none, item: value};
node.prev = stack.head;
stack.head = node;
stack.count = stack.count + 1;
}
fun pop(stack)
{
if stack.head == none:
return none; # return it; ?
value = stack.head.item;
stack.head = stack.head.prev;
stack.count = stack.count - 1;
return value;
}
push(stack, 1);
push(stack, 2);
push(stack, 3);
x = pop(stack);
y = pop(stack);
z = pop(stack);
w = pop(stack);
assert(x == 3);
assert(y == 2);
assert(z == 1);
assert(w == none);