1
看來,當我評估整個文件它沒有問題。是否clooj評估逐行或整行
(ns ShipDataRecord
(:import [java.util.Date]
[org.joda.time.DateTime]
[org.joda.time.Seconds]
[org.joda.time.format.*]
[semsav.RecordSplitter]))
(require '[clojure.data.csv :as csv]
'[clojure.java.io :as io])
(defrecord Record [W1 W2 W3])
(defn read-csv [fname count]
(with-open [file (reader fname)]
(doall (take count (map (comp first csv/read-csv)
(line-seq file))))))
(map #(apply ->Record %) (read-csv "test.csv" 1))
但是,當我逐行評估它似乎給我一個問題。
因此評估文件後,我跑這條線在REPL
(:W3 (first Record))
,但它給了我拋出IllegalArgumentException的編譯器例外不知道如何從創建ISEQ:java.lang.Class中的Clojure。 lang.RT.seqFrom(RT.java:494)。
我GOOGLE了一下,但我似乎無法找到問題。我已經在另一個問題中提出了這個問題,但由於詞語太長,我必須創建一個新問題
我只想問,如果值:W3現在被映射到記錄?原諒我的問題,因爲我不習慣函數式編程 – aceminer
變量'記錄'包含由'map'函數創建的Record類對象的集合。因此,通過「第一」功能,您可以獲得此集合的第一個對象。通過':W3'你可以從這個對象獲得':W3'字段。 – mobyte
繼續收到此錯誤:CompilerException java.lang.RuntimeException:無法解析符號: - >在此上下文中編譯:(ShipDataRecord.clj:97) 已嘗試使用此行(println(:W3(first記錄)))但它似乎不工作 – aceminer