21 lines
406 B
Plaintext
21 lines
406 B
Plaintext
def (queue seq)
|
|
(tag queue (list seq lastcons.seq len.seq))
|
|
|
|
def (enq x q)
|
|
do1 x
|
|
let (l last len) rep.q
|
|
rep.q.2 <- (len + 1)
|
|
if no.l
|
|
rep.q.1 <- (rep.q.0 <- list.x)
|
|
rep.q.1 <- (cdr.last <- list.x)
|
|
|
|
def (deq q)
|
|
let (l last len) rep.q
|
|
ret ans car.l
|
|
unless zero?.len
|
|
rep.q.2 <- (len - 1)
|
|
rep.q.0 <- cdr.l
|
|
|
|
def (len q) :case (isa queue q)
|
|
rep.q.2
|