読者です 読者をやめる 読者になる 読者になる

Sphereとともに

scalaとかplayframeworkとか。技術ブログにしたいなと。環境は Windows7x64, mac です。たまに声優さん情報が混ざります。最近ちょっとClojure触りました。

Clojure その24 csvファイルを読み込んでpart2

プログラミング Clojure

全然うまく行かないので

repl でちょっとみてみる

f:id:FScoward:20140110003154p:plain

ふむ

じゃpart1のやつをちょっと弄ってみて

(defn -main []
  (def uploadData (parse-csv (slurp "test.csv")))
  (def defaultData (parse-csv (slurp "default.csv")))
  (println (class uploadData))
  (println (class defaultData))
  (map #(println %1 " : " %2) uploadData defaultData)
  )

こうすると

$ lein run
clojure.lang.LazySeq
clojure.lang.LazySeq

以上のようになって、表示されないので

doall をつけてみる

(defn -main []
  (def uploadData (parse-csv (slurp "test.csv")))
  (def defaultData (parse-csv (slurp "default.csv")))
  (println (class uploadData))
  (println (class defaultData))
  (doall (map #(println %1 " : " %2) uploadData defaultData))
  )

そうすると

$ lein run
clojure.lang.LazySeq
clojure.lang.LazySeq
[000 111]  :  [aaa bbb]

こういう結果が返ってくる

・・・

なんで?!

同じlazy-seqでもなんか () と [] で違う?

7つの言語 7つの世界

7つの言語 7つの世界