Articles of clojure

¿Qué es un buen marco de colecciones persistentes para usar en Java?

Por colecciones persistentes me refiero a colecciones como las de clojure. Por ejemplo, tengo una lista con los elementos (a, b, c). Con una lista normal, si agrego d, mi lista original tendrá (a, b, c, d) como sus elementos. Con una lista persistente, cuando llamo list.add (d), obtengo una nueva lista, sosteniendo (a, b, […]

¿Cómo enumerar las funciones de un espacio de nombres?

Me gustaría saber cómo enumerar todas las funciones de un espacio de nombres de Clojure. He investigado un poco, pero todavía no he llegado. Ya descubrí cómo enumerar los métodos de una clase Java utilizando el método show: (show java.awt.Graphics) Para enumerar las funciones de un espacio de nombre de Clojure, probé el método de […]

Cómo convertir secuencias perezosas a no perezosas en Clojure

Intenté lo siguiente en Clojure, esperando tener la clase de una secuencia no lenta devuelta: (.getClass (doall (take 3 (repeatedly rand)))) Sin embargo, esto todavía devuelve clojure.lang.LazySeq . Mi suposición es que doall no evalúa la secuencia completa, pero devuelve la secuencia original, ya que aún es útil para la memorización. Entonces, ¿cuál es el […]

Diferencia entre doseq y para en Clojure

¿Cuál es la diferencia entre doseq y para en Clojure? ¿Cuáles son algunos ejemplos de cuándo elegirías usar uno sobre el otro?

Un tutorial amable de Emacs / Swank / Paredit para Clojure

Me estoy mudando a Emacs para trabajar en Clojure / Lisp. ¿Cuál es toda la información que necesito configurar en Emacs para poder hacer lo siguiente? coincidencia automática / generación de corchetes de cierre correspondientes Estilo Autindent Lisp / Clojure, no estilo C ++ / Java Resaltado de syntax Invocando REPL Para poder cargar una […]

Alcance variable + evaluación en Clojure

En Clojure, (def x 3) (eval ‘(prn x)) imprime 3, mientras que (let [y 3] (eval ‘(prn y))) y (binding [z 3] (eval ‘(prn z))) generar una excepción ‘No se puede resolver var’. Según http://clojure.org/evaluation , eval , load-string , etc. generan espacios de nombres temporales para evaluar sus contenidos. Por lo tanto, espero que […]

Búsqueda en el mapa de Idiomatic clojure por palabra clave

Digamos que tengo un mapa de clojure que usa palabras clave como sus claves: (def my-car {:color “candy-apple red” :horsepower 450}) Sé que puedo buscar el valor asociado con la palabra clave ya sea usando la palabra clave o el mapa como una función y el otro como argumento: (my-car :color) ; => “candy-apple red” […]

Consumidor productor con calificaciones

Soy nuevo en Clojure y trato de entender cómo usar correctamente sus características de simultaneidad, por lo que cualquier crítica / sugerencia es apreciada. Así que estoy tratando de escribir un pequeño progtwig de prueba en Clojure que funciona de la siguiente manera: hay 5 productores y 2 consumidores un productor espera un tiempo aleatorio […]

¿Cómo se implementan las secuencias perezosas en Clojure?

Me gusta Clojure. Una cosa que me molesta sobre el lenguaje es que no sé cómo se implementan las secuencias perezosas o cómo funcionan. Sé que las secuencias perezosas solo evalúan los elementos en la secuencia que se solicitan. ¿Como hace esto? ¿Qué hace que las secuencias perezosas sean tan eficientes que no consumn mucha […]

Mapeo de una función en los valores de un mapa en Clojure

Quiero transformar un mapa de valores en otro mapa con las mismas teclas pero con una función aplicada a los valores. Pensaría que había una función para hacer esto en la API de Clojure, pero no he podido encontrarla. Aquí hay una implementación de ejemplo de lo que estoy buscando (defn map-function-on-map-vals [mf] (reduce (fn […]