Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.42 KB | None | 0 0
  1. (defmacro defun-schonfinkel (name lambda-list &body body)
  2.   (let ((sargs (gensym)) (sargs2 (gensym)))
  3.   `(defun ,name (&rest ,sargs)
  4.      (if (< (length ,sargs) ,(length lambda-list))
  5.          (lambda (&rest ,sargs2)
  6.            (apply #',name (append ,sargs ,sargs2)))
  7.          (destructuring-bind ,lambda-list ,sargs ,@body)))))
  8.  
  9. (defun-schonfinkel f (x y z) (+ x y z))
  10.  
  11. (f 19 390 1) => 410
  12. (funcall (f 19) 12 2) => 33
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement