From 376dc57915875861988cf6437d983a34670a2d02 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 1 Dec 2015 12:22:13 -0800 Subject: Drop eval-when: functions aren't macro helpers. --- deque.lisp | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/deque.lisp b/deque.lisp index 7fca7e1..d6fa1b8 100644 --- a/deque.lisp +++ b/deque.lisp @@ -22,28 +22,27 @@ ;;; ;;; -(eval-when (:compile-toplevel :load-toplevel :execute) - (defun bisect-list (list &optional (minimum-length 0)) - (do ((double-skipper (cddr list) (cddr double-skipper)) - (single-skipper list (cdr single-skipper)) - (length 2 (+ length (if (cdr double-skipper) 2 1)))) - ((null double-skipper) - (cond - ((< length minimum-length) - (values list nil)) - ((consp single-skipper) - (multiple-value-prog1 - (values list (cdr single-skipper)) - (setf (cdr single-skipper) nil))) - (t (values list nil)))))) +(defun bisect-list (list &optional (minimum-length 0)) + (do ((double-skipper (cddr list) (cddr double-skipper)) + (single-skipper list (cdr single-skipper)) + (length 2 (+ length (if (cdr double-skipper) 2 1)))) + ((null double-skipper) + (cond + ((< length minimum-length) + (values list nil)) + ((consp single-skipper) + (multiple-value-prog1 + (values list (cdr single-skipper)) + (setf (cdr single-skipper) nil))) + (t (values list nil)))))) - (defun pop-deque-helper (facing-piece other-piece) - (if (null facing-piece) - (multiple-value-bind (head tail) (bisect-list other-piece 10) - (let ((remaining (if tail head)) - (moved (nreverse (or tail head)))) - (values (first moved) (rest moved) remaining))) - (values (first facing-piece) (rest facing-piece) other-piece)))) +(defun pop-deque-helper (facing-piece other-piece) + (if (null facing-piece) + (multiple-value-bind (head tail) (bisect-list other-piece 10) + (let ((remaining (if tail head)) + (moved (nreverse (or tail head)))) + (values (first moved) (rest moved) remaining))) + (values (first facing-piece) (rest facing-piece) other-piece))) (defmacro pop-deque (facing-piece other-piece) (let ((result (gensym)) -- cgit v1.2.3