RosettaCodeData/Task/Queue-Definition/Wart/queue-definition.wart

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