(ns lab.palavras [:require [clojure.string :refer [split join]]]) (def exemplo "Era uma vez, na aurora de nossa era, uma jovem orgulhosa do que era.") (defn contar-vezes [palavras] (let [agrupadas (partition-by identity palavras)] (partition 2 (interleave (map count agrupadas) (map first agrupadas))))) (defn palavras+usadas "n palavras mais frequentes em texto" [n texto] (->> (.toLowerCase texto) (filter #(or(Character/isLetter %)(Character/isSpace %)) ) (apply str ) (#(split % #"\s+") ) sort contar-vezes (sort-by first > ) (take n ) (map #(str " " (second %) ": " (first %) "\n") ) join))