Question

Je souhaite conserver une liste de fonctions de normalisation pour un texte. Comment puis-je stocker .toLowercase? Je pensais à quelque chose comme ça:

(def normalizing-functions (list remove-punctuations .toLowerCase))
Était-ce utile?

La solution

Il semble que vous fassiez une liste de fonctions à appliquer à quelque chose régulièrement. la méthode java est pas tout à fait une fonction de clojure dans ce sens si sa vraiment facile à conclure comme vous le feriez si vous alliez l’alimenter à la fonction de carte.

#(. tolowercase %)

Autres conseils

Plutôt que de les conserver dans une liste que vous devrez décompresser plus tard, il peut être plus simple de placer .toLowerCase dans une fonction clojure (edit: en utilisant la syntaxe de my ou Arthur) et composez-le avec les fonctions que vous prévoyez d'utiliser pour normaliser vos données à l'aide de 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))

La macro memfn le fera de manière plus lisible.

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

reviendrait "bonjour". (doc memfn) contient les détails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top