Advertisement
Guest User

Untitled

a guest
Aug 4th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. cl-user> (cat "/tmp/f.lisp")
  2. ;; Funciona: retorna o valor correto
  3. (defmacro only (obj val)
  4. `(jsown:val ,obj ,val))
  5.  
  6. (pprint (macroexpand-1 '(only *js* "a"))) ; "amor"
  7.  
  8.  
  9. ;; Erro: usa o valor dentro de um let
  10. (defmacro only-2 (obj val &body body)
  11. `(let ((val ,(jsown:val obj val)))
  12. ,@body))
  13.  
  14. (pprint (macroexpand-1 '(only-2 *js* "a"
  15. (format t "~A" val))))
  16.  
  17. ;; The value
  18. ;; *JS*
  19. ;; is not of type
  20. ;; LIST
  21. ; No value
  22. cl-user> (load "/tmp/f.lisp")
  23.  
  24. (jsown:val *js* "a")
  25. (let ((val nil)) (format t "~A" val))
  26. #P"/private/tmp/f.lisp"
  27. cl-user>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement