16 lines
253 B
Text
16 lines
253 B
Text
queue:
|
|
{ :start 0 :end 0 }
|
|
|
|
enqueue q item:
|
|
set-to q q!end item
|
|
set-to q :end ++ q!end
|
|
|
|
dequeue q:
|
|
if empty q:
|
|
Raise :value-error "popping from empty queue"
|
|
q! q!start
|
|
delete-from q q!start
|
|
set-to q :start ++ q!start
|
|
|
|
empty q:
|
|
= q!start q!end
|