Si hago esto:¿Qué sucede cuando paso argumentos a un símbolo de Clojure?
('a 'b 'c)
me sale esto:
c
¿Por qué?
Si hago esto:¿Qué sucede cuando paso argumentos a un símbolo de Clojure?
('a 'b 'c)
me sale esto:
c
¿Por qué?
El enlace Hauleth publicado es una buena descripción de los símbolos, pero la respuesta a su pregunta es que llamar a un símbolo como función equivale a buscar ese símbolo en el primer argumento.
('a 'b)
es equivalente a
(get 'b 'a)
La documentación para conseguir demuestra que se puede pasar un tercer argumento opcional como el valor predeterminado. En su ejemplo, 'c se trata como el valor predeterminado y se devuelve porque' b no es un mapa y 'a no se puede encontrar.
tienes los argumentos para (conseguir) al revés, pero de lo contrario me gustaría aceptar tu respuesta – jes5199
Doh. debería estar bien ahora. – nickmbailey
Sooooo, no solo palabra clave, sino símbolo también ... y como ejemplo siempre ponemos un símbolo no citado que la bruja no está definida, nunca pensamos en el símbolo en sí ... Eso es ... hrm, tomando el hábito de la sintaxis azúcar ... colección, símbolo y palabra clave son IFn también;) –
No debería ser '(list 'a' b 'c)'? – Hauleth