X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=functions.lisp;h=e9b30741de3378117d0c0e3507881d290fd48321;hp=ffc8ac6cddbce58debbbc092dfac3c93dff06d4a;hb=54cd6cb1b9550ac2310e2c6dffc9cdecd2bdccd3;hpb=4de7f25a69c218303f170314ac26217770a531ed diff --git a/functions.lisp b/functions.lisp index ffc8ac6..e9b3074 100644 --- a/functions.lisp +++ b/functions.lisp @@ -7,8 +7,6 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: functions.lisp,v 1.1 2003/04/28 23:51:59 kevin Exp $ -;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; ;;;; KMRCL users are granted the rights to distribute and use this software @@ -25,8 +23,7 @@ (multiple-value-bind (val foundp) (gethash args cache) (if foundp val - (setf (gethash args cache) - (apply fn args))))))) + (setf (gethash args cache) (apply fn args))))))) (defun memoize (fn-name) (setf (fdefinition fn-name) (memo-proc (fdefinition fn-name)))) @@ -36,7 +33,7 @@ `(memoize (defun ,fn ,args . ,body))) (defmacro _f (op place &rest args) - (multiple-value-bind (vars forms var set access) + (multiple-value-bind (vars forms var set access) (get-setf-expansion place) `(let* (,@(mapcar #'list vars forms) (,(car var) (,op ,access ,@args))) @@ -47,7 +44,7 @@ (let ((fn1 (car (last fns))) (fns (butlast fns))) #'(lambda (&rest args) - (reduce #'funcall fns + (reduce #'funcall fns :from-end t :initial-value (apply fn1 args)))) #'identity))