मैं इस तरह एक कोड है। मैं इसे प्रतिलिपि में चला सकता हूं लेकिन कमांड लाइन से नहीं कर सकता। मुझे लगता है कि मुझे आलसी मूल्यांकन समस्या है।आलसी मूल्यांकन समस्या
; 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
सादर।
मैं काम किया। बहुत बहुत धन्यवाद। – Osman
असल में 'dorun' बेहतर इस मामले के लिए उपयुक्त (' doall' seq यह लपेटता है और यह रिटर्न के सिर पर रखती है, जबकि 'dorun' को छोड़ देता है यह चरण दर चरण और अंत में' रिटर्न nil' है - इस प्रकार यह बेहतर के लिए उपयुक्त है दुष्प्रभाव कोड)। –
@Michal: आप बिल्कुल निश्चित रूप से सही है, कर रहे हैं। मैं Clojure के साथ एक सा dabbled है लेकिन उच्च दक्षता पर पहुंच गया कभी नहीं, और अब, दुर्भाग्य से, यहाँ तक कि जंग शुरू कर रहा है। सुधारों के लिए धन्यवाद! –