r5304: *** empty log message ***
[hyperobject.git] / rules.lisp
index 336c86f2fa3e02bbc39c1dc14ad0bf4bb001dc52..3807676c83550d4555190d84e681f9dd18ce9ef3 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: rules.lisp,v 1.47 2003/06/20 08:35:21 kevin Exp $
+;;;; $Id: rules.lisp,v 1.48 2003/07/14 04:10:02 kevin Exp $
 ;;;;
 ;;;; This file is Copyright (c) 2000-2003 by Kevin M. Rosenberg
 ;;;; *************************************************************************
                     ,@source-code)))))))
   
 (defun finalize-rules (cl)
-  (let* ((direct-rules (direct-rules cl))
-        (rules '()))
-    (dolist (rule direct-rules)
-      (destructuring-bind (name (&key dependants volatile) &rest source-code)
-         rule
-       (setf dependants (mklist dependants)
-             volatile (mklist volatile))
-       (push
-        (make-instance 'rule :name name :dependants dependants
-                       :volatile volatile :source-code source-code
-                       :access-slots (appendnew dependants volatile)
-                       :func (compile-rule
-                              source-code dependants volatile cl))
-        rules)))
-    (setf (rules cl) (nreverse rules))))
+  (setf (rules cl)
+    (loop for rule in (direct-rules cl)
+       collect 
+         (destructuring-bind (name (&key dependants volatile) &rest source-code)
+             rule
+           (setf dependants (mklist dependants)
+                 volatile (mklist volatile))
+           (make-instance 'rule :name name :dependants dependants
+                          :volatile volatile :source-code source-code
+                          :access-slots (appendnew dependants volatile)
+                          :func (compile-rule
+                                 source-code dependants volatile cl))))))
 
 
 (defun fire-class-rules (cl obj slot)