Advertisement
Guest User

Untitled

a guest
Apr 15th, 2018
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.54 KB | None | 0 0
  1. (defmacro mfoo () '(lambda (z) (1+ z)))
  2.  
  3. ;; f-macro has a function call to a compiled lambda in disassembly
  4.  
  5. (defun f-macro (x)
  6.   (declare (optimize (speed 3) (safety 0) (debug 0)))
  7.   (funcall (mfoo) x))
  8.  
  9. ;; f-bare and f-flet-macro have the same disassembly, and both call
  10. ;; #'1+ directly
  11.  
  12. (defun f-bare (x)
  13.   (declare (optimize (speed 3) (safety 0) (debug 0)))
  14.   (funcall (lambda (z) (1+ z)) x))
  15.  
  16. (defun f-flet-macro (x)
  17.   (declare (optimize (speed 3) (safety 0) (debug 0)))
  18.   (flet ((f (x) (funcall (mfoo) x)))
  19.     (funcall #'f x)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement