scopo variável + avaliação no Clojure
In Clojure,
(def x 3)
(eval '(prn x))
impressões 3, enquanto
(let [y 3]
(eval '(prn y)))
(binding [z 3] (eval '(prn z)))
gere uma exceção "Não foi possível resolver var"
De acordo comhttp: //clojure.org/evaluatio, eval
, load-string
, etc geram namespaces temporários para avaliar seu conteúdo. Portanto, espero que nenhum dos exemplos de código acima funcione, já que(def x 3)
é feito no meu namespace atual, não no criado poreval
.
eval
um formulário com variáveis associadas sem usardef
?Obrigado