mdw-base (functionify): Coerce function designator to function.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 3 Jul 2007 12:18:25 +0000 (13:18 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 3 Jul 2007 12:18:25 +0000 (13:18 +0100)
mdw-base.lisp

index 646eb7e..2c1a79c 100644 (file)
@@ -31,7 +31,8 @@
   (:export #:unsigned-fixnum
           #:compile-time-defun
           #:show
-          #:stringify #:mappend #:listify #:fix-pair #:pairify
+          #:stringify #:functionify #:mappend
+          #:listify #:fix-pair #:pairify
           #:parse-body #:with-parsed-body
           #:whitespace-char-p
           #:slot-uninitialized
     (symbol (symbol-name str))
     (t (princ-to-string str))))
 
+(defun functionify (func)
+  "Convert the function-designator FUNC to a function."
+  (declare (type (or function symbol) func))
+  (etypecase func
+    (function func)
+    (symbol (symbol-function func))))
+
 (defun mappend (function list &rest more-lists)
   "Apply FUNCTION to corresponding elements of LIST and MORE-LISTS, yielding
    a list.  Return the concatenation of all the resulting lists.  Like