2009-07-30 21 views

回答

3

它看起來像你做的功能清單,適用於一些定期。 java方法在這個意義上並不是一個clojure函數,儘管它真的很容易把它包裝起來,就像你將它送到map函數的地方一樣。

 
#(. tolowercase %) 
+0

工作正常!是否有這些操作的文檔?謝謝。 – unj2 2009-07-30 23:31:57

+3

這是一個匿名函數,有時也稱爲lambda。 #(。toLowerCase%))是一個閱讀器宏,它是(fn [x](.toLowerCase x))的簡寫形式。 – alanlcode 2009-07-31 16:19:18

1

而不是讓他們在你有辦法後才能解表,它可能是更容易在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)) 
1

memfn宏將在一個更可讀的方式做到這一點。

(def f (memfn toLowerCase)) 
(f "Hello") 

會返回「你好」。 (doc memfn)有詳細信息。

相關問題