Tengo un código como este. Puedo ejecutar esto en repl pero no puedo desde la línea de comando. Supongo que tengo un problema de evaluación perezosa.Problema de evaluación diferida
; items.clj
(def items (ref []))
(defn init-items []
(map
#(dosync
(alter items conj %))
["foo" "bar" "baz" ]))
(init-items)
(println (first @items))
$ java -jar clojure.jar items.clj
$ nil
Saludos.
trabajé. Muchas gracias. – Osman
En realidad, 'dorun' se adapta mejor a este caso (' doall' se aferra a la cabeza del seq y lo devuelve, mientras que 'dorun' lo descarta paso a paso y finalmente devuelve' nil', por lo que es más adecuado código de efecto secundario). –
@Michal: Tienes toda la razón, por supuesto. He incursionado un poco con Clojure pero nunca alcancé una gran habilidad, y ahora, lamentablemente, incluso eso está empezando a oxidarse. ¡Gracias por la corrección! –