Ho un codice come questo. Posso eseguire questo in repl ma non posso dalla riga di comando. Credo di avere un problema di valutazione pigro.Problema di valutazione pigro
; 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
saluti.
ho lavorato. Molte grazie. – Osman
In realtà 'dorun' è più adatto a questo caso (' doall' tiene sulla testa del seq esso lo avvolge e lo restituisce, mentre 'dorun' lo scarta passo dopo passo e infine restituisce' nil' - quindi è più adatto a codice side-effecty). –
@Michal: hai assolutamente ragione, ovviamente. Mi sono dilungato un po 'con Clojure ma non ho mai raggiunto un'alta competenza, e ora, purtroppo, anche questo comincia a arrugginire. Grazie per la correzione! –