質問

テキストの正規化関数のリストを保持したい。 .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)に詳細があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top