31 lines
671 B
Plaintext
31 lines
671 B
Plaintext
{def queue.add
|
|
{lambda {:v :q}
|
|
{let { {_ {A.addlast! :v :q}}}
|
|
} ok}}
|
|
-> queue.add
|
|
|
|
{def queue.get
|
|
{lambda {:q}
|
|
{let { {:v {A.first :q}}
|
|
{_ {A.subfirst! :q}}
|
|
} :v}}}
|
|
-> queue.get
|
|
|
|
{def queue.empty?
|
|
{lambda {:q}
|
|
{A.empty? :q}}}
|
|
-> queue.empty?
|
|
|
|
{def Q {A.new}} -> Q []
|
|
{queue.add 1 {Q}} -> ok [1]
|
|
{queue.add 2 {Q}} -> ok [1,2]
|
|
{queue.add 3 {Q}} -> ok [1,2,3]
|
|
{queue.get {Q}} -> 1 [2,3]
|
|
{queue.add 4 {Q}} -> ok [2,3,4]
|
|
{queue.empty? {Q}} -> false
|
|
{queue.get {Q}} -> 2 [3,4]
|
|
{queue.get {Q}} -> 3 [4]
|
|
{queue.get {Q}} -> 4 []
|
|
{queue.get {Q}} -> undefined
|
|
{queue.empty? {Q}} -> true
|