Estoy tratando de entender cómo funcionan las jerarquías de Clojure, con deriva y is-a? construcciones. No estoy seguro de cómo los usaría con los mapas y registros en mi programa. Alguien ha usado estos?¿Cómo usar las jerarquías de clojure?
5
A
Respuesta
5
Encuentro su pregunta un poco vaga. ¿Has leído la documentación en el sitio web de Clojure?
http://clojure.org/multimethods
puedo encontrar los ejemplos allí bastante fácil de seguir:
user=> ::rect
:user/rect
user=> (derive ::rect ::shape)
nil
user=> (parents ::rect)
#{:user/shape}
user=> (derive ::square ::rect)
nil
user=> (ancestors ::square)
#{:user/shape :user/rect}
user=> (isa? ::square ::shape)
true
Hay también esta entrada del blog con un "mundo real" ejemplo más:
Cuestiones relacionadas
- 1. ¿Cuándo y cómo se deben usar las jerarquías independientes en clojure?
- 2. ¿Por qué usar las jerarquías Spring ApplicationContext?
- 3. ¿Las jerarquías de excepción son realmente útiles?
- 4. ¿Cómo usar mis propias versiones de las bibliotecas de Clojure?
- 5. ¿Cómo podemos representar las jerarquías profundas del modelo en Backbone.js
- 6. ¿Cómo moderar jerarquías de clase en Haskell?
- 7. Python paquete ast: atravesar las jerarquías de objetos
- 8. Sincronización unidireccional de dos jerarquías
- 9. ¿Cómo usar la función doc de clojure?
- 10. ¿Cómo usar "Update-in" en Clojure?
- 11. Clojure: ¿Cómo usar variables en expresiones regulares?
- 12. Notificación de cambio en MVVM jerarquías
- 13. Deseosa carga de árbol/jerarquías usando Nhibernate
- 14. Clojure ¿por qué usar: solamente []
- 15. compresión jerarquías de objetos de JavaScript
- 16. ¿Cómo debo tratar las jerarquías de objetos en una API RESTful?
- 17. Representación eficiente de jerarquías en Hibernate
- 18. Usar Clojure para probar la unidad Java
- 19. ¿Cuándo debería usar deftype en Clojure?
- 20. ¿Por qué debería usar 'aplicar' en Clojure?
- 21. Elenco estático frente a modelo dinámico para recorrer las jerarquías de herencia
- 22. ¿Cómo aplicar clojure?
- 23. En Clojure, ¿cómo desestructurar todas las teclas de un mapa?
- 24. ¿Cómo puedo usar Clojure REPL junto con Qt Jambi?
- 25. ¿Incoherencia con las secuencias de Clojure?
- 26. Las condiciones de carrera y átomos clojure
- 27. Resolviendo las dependencias circulares de Clojure
- 28. En Clojure, ¿cómo usar una clase Java dinámicamente?
- 29. ¿Dónde debo usar defrecord in clojure?
- 30. ¿Cuáles son las convenciones más comunes para usar espacios de nombres en Clojure?
Gracias , información útil, así que si entiendo correctamente si tengo un registro como (defrecord R []) y quiero ponerlo en un tipo hieracrhy, entonces necesito asociar tipos con él, como (def r (R.)) (assoc r: type :: type). ¿Es esto correcto? – Zubair
Tbh, nunca he hecho algo como esto con los registros (lamentablemente no tuve tiempo de sumergirme realmente en Clojure 1.2), pero parece razonable. –