【发布时间】:2012-04-20 10:13:30
【问题描述】:
为什么必须在 get-word-ids 中使用“first”,正确的做法是什么?
(defn parts-of-speech []
(lazy-seq (. POS values)))
(defn index-words [pos]
(iterator-seq (. dict getIndexWordIterator pos)))
(defn word-ids [word]
(lazy-seq (. word getWordIDs)))
(defn get-word [word-id]
(. dict getWord word-id))
(defn get-index-words []
(lazy-seq (map index-words (parts-of-speech))))
(defn get-word-ids []
(lazy-seq (map word-ids (first (get-index-words)))))
;; this works, but why do you have to use "first" in get-word-ids?
(doseq [word-id (get-word-ids)]
(println word-id))
【问题讨论】:
-
你用错了
lazy-seq,有一个成语你必须尊重。但主要是,这是低级的东西,“正确的方法”是结合现有的核心功能如map、filter、for等来实现你想要的。
标签: clojure