1
第4章の最後の「Clojure for the Brave」のプログラム「FWPDの吸血鬼データ解析プログラム」を理解しようとしています。と真 "。コードは次のとおりです。FWPDの吸血鬼データ解析プログラム、Clojure for the BraveとTrue
(ns fwpd.core)
(def filename "suspects.csv")
(def vamp-keys [:name :glitter-index])
(defn str->int
[str]
(Integer. str))
(def conversions {:name identity
:glitter-index str->int})
(defn convert
[vamp-key value]
((get conversions vamp-key) value))
(defn parse
"Convert a CSV into rows of columns"
[string]
(map #(clojure.string/split % #",")
(clojure.string/split string #"\n")))
(defn mapify
"Return a seq of maps like {:name \"Edward Cullen\" :glitter-index 10}"
[rows]
(map (fn [unmapped-row]
(reduce (fn [row-map [vamp-key value]]
(assoc row-map vamp-key (convert vamp-key value)))
{}
(map vector vamp-keys unmapped-row)))
rows))
(defn glitter-filter
[minimum-glitter records]
(filter #(>= (:glitter-index %) minimum-glitter) records))
誰かが変換と機能の変換について助けてくれますか?
具体的なことができますか?あなたは ''(コンバージョンvamp-keyを得る) ''関数が返され、 '' value''に呼び出され、 '' identity''は入力を返す標準関数(すべての関数型言語)です。与えられた? –
私は今理解していると思う。 (変換のvamp-keyを得る)は、identity関数またはstr-> int関数を返し、それらの値の1つを呼び出します。どうもありがとうございました。あなたは私をたくさん助けました。 – nenad