;;;;
;;;; FILE IDENTIFICATION
;;;;
-;;;; Name: reversi-base.cl
+;;;; Name: reversi-base.lisp
;;;; Purpose: Basic functions for reversi
-;;;; Programer: Kevin M. Rosenberg, M.D.
+;;;; Programer: Kevin M. Rosenberg
;;;; Date Started: 1 Nov 2001
-;;;; CVS Id: $Id: utils.lisp,v 1.1 2002/10/25 08:36:42 kevin Exp $
;;;;
+;;;; $Id: utils.lisp,v 1.4 2003/05/06 15:51:20 kevin Exp $
+;;;;
+;;;; This file is Copyright (c) 2001-2002 by Kevin M. Rosenberg
+;;;;
+;;;; Reversi users are granted the rights to distribute and use this software
+;;;; as governed by the terms of the Lisp Lesser GNU Public License
+;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
;;;;***************************************************************************
-(in-package :reversi)
-(declaim (optimize (safety 1) (debug 3) (speed 3)))
+(in-package #:reversi)
+
+(eval-when (:compile-toplevel)
+ (declaim (optimize (safety 1) (space 0) (speed 3) (compilation-speed 0))))
+(defmacro missing-argument ()
+ `(error "Missing an argument to a constructor"))
;; Anaphoric macros
((not it))
,@body))
-(defmacro aand (&rest args)
- (cond ((null args) t)
- ((null (cdr args)) (car args))
- (t `(aif ,(car args) (aand ,@(cdr args))))))
-
-(defmacro acond (&rest clauses)
- (if (null clauses)
- nil
- (let ((cl1 (car clauses))
- (sym (gensym)))
- `(let ((,sym ,(car cl1)))
- (if ,sym
- (let ((it ,sym)) ,@(cdr cl1))
- (acond ,@(cdr clauses)))))))
-
-(defmacro alambda (parms &body body)
- `(labels ((self ,parms ,@body))
- #'self))
-
-
(defun mappend (fn list)
"Append the results of calling fn on each element of list.
Like mapcon, but uses append instead of nconc."
((not ,test))
,@body))
-#+ignore
-(defmacro while (test &body body)
- `(do ()
- (not ,test)
- ,@body))
-
#+excl
(defun list-to-delimited-string (list &optional (separator #\space))
(excl:list-to-delimited-string list separator))