No puedo usar funciones lógicas en un rango de booleanos en Clojure (1.2). Ninguno de los siguientes trabajos debido a las funciones lógicas siendo macros:"reducir" o "aplicar" usando funciones lógicas en Clojure
(reduce and [... sequence of bools ...])
(apply or [... sequence of bools ...])
El mensaje de error dice que "no puedo tomar valor de una macro: #'clojure.core/and
". ¿Cómo aplicar estas funciones lógicas (macros) sin escribir código repetitivo?
Exactamente lo que estaba buscando. –
Enlaces a documentos, ['every?'] (Http://clojuredocs.org/clojure_core/clojure.core/every_q) y ['some'] (http://clojuredocs.org/clojure_core/clojure.core/some) –
'some' no funciona muy bien para' or' ya que devuelve 'nil' si la expresión debe evaluar' false'. Usar '# (some? (Some true?%))' O '# (not (every? False?%))' No agrega mucho al legibilidad imo y ambos no funcionan muy bien con thread-macros que requieren paréntesis extra alrededor la lambda. Además 'some?' Solo ha estado disponible desde v1.6. –