39 lines
708 B
Plaintext
39 lines
708 B
Plaintext
( queue
|
|
= (list=)
|
|
(enqueue=.(.!arg) !(its.list):?(its.list))
|
|
( dequeue
|
|
= x
|
|
. !(its.list):?(its.list) (.?x)
|
|
& !x
|
|
)
|
|
(empty=.!(its.list):)
|
|
)
|
|
& new$queue:?Q
|
|
& ( (Q..enqueue)$1
|
|
& (Q..enqueue)$2
|
|
& (Q..enqueue)$3
|
|
& out$((Q..dequeue)$)
|
|
& (Q..enqueue)$4
|
|
& out$((Q..dequeue)$)
|
|
& out$((Q..dequeue)$)
|
|
& out
|
|
$ ( The
|
|
queue
|
|
is
|
|
((Q..empty)$&|not)
|
|
empty
|
|
)
|
|
& out$((Q..dequeue)$)
|
|
& out
|
|
$ ( The
|
|
queue
|
|
is
|
|
((Q..empty)$&|not)
|
|
empty
|
|
)
|
|
& out$((Q..dequeue)$)
|
|
& out$Success!
|
|
| out$"Attempt to dequeue failed"
|
|
)
|
|
;
|