Sto provando a scrivere una funzione che accetta una stringa e restituisce un risultato di una funzione filtro (sto lavorando attraverso i problemi 4clojure). Il risultato deve essere anche una stringa.Clojure join non riesce a creare una stringa dal risultato della funzione filtro
ho scritto questo:
(fn my-caps [s]
(filter #(Character/isUpperCase %) s))
(my-caps "HeLlO, WoRlD!")
Result: (\H \L \O \W \R \D)
Ora sto cercando di creare una stringa di fuori di questa lista, utilizzando clojure.string/unirsi, in questo modo:
(fn my-caps [s]
(clojure.string/join (filter #(Character/isUpperCase %) s)))
Il risultato è comunque lo stesso. Ho anche provato a usare apply str
, senza successo.
Grazie! Mi ha fatto cercare una macro a doppia freccia. Prima non conoscevo i thread macro. –
@ntalbs, perché usare l'operatore '- >>' qui? è sufficiente una semplice chiamata di funzione per invocare 'apply' –
@ ÓscarLópez Sì, hai ragione. Il risultato è lo stesso. Tuttavia, l'utilizzo di '- >>' rende più semplice leggere la lettura del codice e digitare a partire dal mio processo di pensiero. Questo è tutto. È una specie di preferenze personali. – ntalbs