Pergunta

Eu quero manter uma lista de funções normalização para um texto. Como faço para armazenar .toLowercase? Eu estava pensando em algo como isto:

(def normalizing-functions (list remove-punctuations .toLowerCase))
Foi útil?

Solução

Parece que o seu fazer uma lista de funções para aplicar a algo em uma base regular. o método java não é bem uma função clojure, nesse sentido, embora a sua realmente fácil de envolvê-lo apenas como você faria se você estava indo para alimentá-lo para a função de mapa.

#(. tolowercase %)

Outras dicas

Ao invés de mantê-los em uma lista que você vai ter que desempacotar alguma forma depois, só ele pode ser mais fácil de .toLowerCase envoltório em uma função clojure (edit: usando a minha ou a sintaxe de Arthur) e compô-lo com as funções que você' planejamento re ao uso para normalizar seus dados usando 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))

A macro memfn vai fazer isso de uma forma mais legível.

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

voltaria "Olá". (doc memfn) tem os detalhes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top