我想保留一個文本的規範化函數列表。如何存儲.toLowercase? 我在想是這樣的:如何將Java方法存儲在Clojure的列表中
(def normalizing-functions (list remove-punctuations .toLowerCase))
我想保留一個文本的規範化函數列表。如何存儲.toLowercase? 我在想是這樣的:如何將Java方法存儲在Clojure的列表中
(def normalizing-functions (list remove-punctuations .toLowerCase))
它看起來像你做的功能清單,適用於一些定期。 java方法在這個意義上並不是一個clojure函數,儘管它真的很容易把它包裝起來,就像你將它送到map函數的地方一樣。
#(. tolowercase %)
而不是讓他們在你有辦法後才能解表,它可能是更容易在Clojure的函數來包裝.toLowerCase
(編輯:用我的還是亞瑟的語法),並撰寫它你計劃的功能來使用通過comp
一定要規範你的數據:
user=> (defn remove-punctuation [st] ...removing puncutation mechanics...)
user=> (defn lower-case [st]
(.toLowerCase st))
user=> ((comp remove-punctuation lower-case) "HELLO THERE!")
"hello there"
user=> (defn normalize-data [data]
((comp remove-punctuation lower-case) data))
的memfn
宏將在一個更可讀的方式做到這一點。
(def f (memfn toLowerCase))
(f "Hello")
會返回「你好」。 (doc memfn)
有詳細信息。
工作正常!是否有這些操作的文檔?謝謝。 – unj2 2009-07-30 23:31:57
這是一個匿名函數,有時也稱爲lambda。 #(。toLowerCase%))是一個閱讀器宏,它是(fn [x](.toLowerCase x))的簡寫形式。 – alanlcode 2009-07-31 16:19:18