Frage

Ich möchte eine Liste halten von Funktionen für einen Text zu normalisieren. Wie speichere ich .tolowercase? Ich dachte an so etwas wie folgt aus:

(def normalizing-functions (list remove-punctuations .toLowerCase))
War es hilfreich?

Lösung

Es sieht aus wie Ihr eine Liste von Funktionen machen, um etwas auf einer regelmäßigen Basis anzuwenden. die Java-Methode ist nicht ganz clojure Funktion in diesem Sinne auch wenn seine wirklich einfach es wie würden Sie, wenn Sie einpacken, wo geht es um die Kartenfunktion zu ernähren.

#(. tolowercase %)

Andere Tipps

Anstatt sie in einer Liste zu halten, die Sie später einen Weg auspacken müssen werden, kann es nur einfacher sein .toLowerCase in einer clojure Funktion wrap (edit: mit meiner oder Arthurs Syntax) und komponieren sie mit den Funktionen, die Sie‘ re Planung Ihrer Daten verwenden comp zu normalisieren mit:

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))

Das memfn Makro wird dies in einer besser lesbaren Art und Weise.

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

zurückkehren würde "Hallo". (doc memfn) hat die Details.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top