質問
テキストの正規化関数のリストを保持したい。 .toLowercaseを保存するにはどうすればよいですか? 私はこのようなことを考えていました:
(def normalizing-functions (list remove-punctuations .toLowerCase))
解決
何かに定期的に適用する関数のリストを作成しているように見えます。この方法では、javaメソッドはclojure関数ではありませんが、 マップ関数にフィードする場合と同じように簡単にラップできます。
#(. tolowercase %)
他のヒント
後で展開する必要があるリストに保存するのではなく、 .toLowerCase
をclojure関数でラップする方が簡単かもしれません(編集:myまたはArthurの構文を使用) 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")
" hello"を返します。 (doc memfn)
に詳細があります。
所属していません StackOverflow