blob: 3e02a36e7cf3546ca290b91a6865d99e8f1b34a5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
(declaim (optimize (speed 3) (safety 1)))
(defun queue:new ()
(cons nil nil))
(defun queue:push (datum q)
(let ((element (cons datum nil)))
(if (car q)
(setf (cddr q) element)
(setf (car q) element))
(setf (cdr q) element)
q))
(defun queue:pop (q)
(pop (car q)))
(defun queue:peek (q)
(caar q))
(defun queue:to-list (q)
(car q))
(defun queue:from-list (lst)
(cons lst (last lst)))
|