1
"Clojure for the Brave"책의 4 번째 장 끝에있는 "FWPD 용 흡혈귀 데이터 분석 프로그램"을 이해하려고합니다. 및 True ". 코드는 다음과 같습니다.FWPD 용 뱀파이어 데이터 분석 프로그램, 용감한 Clojure
(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))
누군가가 변환 및 기능 변환에 도움이 될 수 있습니까?
좀 더 구체적으로 기재 할 수 있습니까? ''(변환 변환 키를 얻는다 ') 함수가'value'에서 호출 될 함수를 리턴하고'identity'는 입력을 리턴하는 표준 함수 (모든 함수형 언어에서)라는 것을 알고 있습니까? 주어진? –
나는 지금 이해할 것 같아. (변환 vamp-key를 얻는다)는 신원 함수 또는 str-> int 함수를 리턴하고 값 중 하나를 호출 할 것입니다. 고맙습니다. 너 나 많이 도와 줬어. – nenad