Advertisement
Guest User

Untitled

a guest
Aug 4th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1.  
  2. cl-user> (cat "/tmp/f.lisp")
  3. ;; Funciona: retorna o valor correto
  4. (defmacro only (obj val)
  5. `(jsown:val ,obj ,val))
  6.  
  7. (pprint (macroexpand-1 (only *js* "a"))) ; "amor"
  8.  
  9.  
  10. ;; Erro: usa o valor dentro de um let
  11. (defmacro only-2 (obj val &body body)
  12. `(let ((val ,(jsown:val obj val)))
  13. ,@body))
  14.  
  15. (pprint (macroexpand-1 (only-2 *js* "a"
  16. (format t "~A" val))))
  17.  
  18. ;; The value
  19. ;; *JS*
  20. ;; is not of type
  21. ;; LIST
  22. ; No value
  23. cl-user> (load "/tmp/f.lisp")
  24. ; Evaluation aborted on #<ccl::no-such-package #x3020038F870D>.
  25. cl-user> (defpackage "JSOWN" (:use) (:export "VAL"))
  26. #<Package "JSOWN">
  27. cl-user> (load "/tmp/f.lisp")
  28. ; Evaluation aborted on #<unbound-variable #x3020039F5F9D>.
  29. cl-user> (defparameter *JS* nil)
  30. *js*
  31. cl-user> (load "/tmp/f.lisp")
  32. ; Evaluation aborted on #<ccl::undefined-function-call #x302003A0DCED>.
  33. cl-user> (defun jsown:val (&rest args) nil)
  34. ;Compiler warnings :
  35. ; In jsown:val: Unused lexical variable args
  36. jsown:val
  37. cl-user> (load "/tmp/f.lisp")
  38.  
  39. nilnil
  40. nil
  41. #P"/private/tmp/f.lisp"
  42. cl-user>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement