21 lines
406 B
Text
21 lines
406 B
Text
|
|
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
|