lein new cl1
cd cl1
Edita project.clj
(defproject cl1 "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies "1.8.0"
:aot [cl1.core]
:main cl1.core
)
Edita src/cl1/core.clj
(ns cl1.core)
(defn f [x] (* x x x))
(defn -main [& args]
(println (map f (range 100)))
)
Executar
lein run
Ou no repl
lein repl
(load "core")
(in-ns "cl1.core")
(map f (range 100))
mes, banana, laranja, pera jan, 432, 542, 564 fev, 52, 46, 874 mar, 434, 54, 76 abr, 345, 342, 655 mai, 53, 32, 54 jun, 764, 453, 734
Le um arquivo com slurp
(slurp "teste.csv")
Podemos cortar as strings com split
(split "algumas palavras separadas pelas espacos" #"")
Obs : #" " 'e notacao de expressoes regulares (Regex) que sao utilizadas pela split
.
Podemos ler um arquivo CSV e convertar pra um estrutura de dados representando uma tabela assim :
(defn tab [t]
(let [lines (str/split t #"\n")
dadas (rest lines)
f-linha (fn [l] (let [xs (str/split l #",\s+")]
{:mes (first xs) :d (rest xs)}))]
{:heads (first lines)
:linhas (map f-linha dadas)})
)
(defn -main [& args]
(let [data (slurp "teste.csv")
tabulo (tab data)
]
(println tabulo))
)
<table>
<tr><th>mes</th><th>banana</th> ... </tr>
<tr><td>jam</td>
...
</table>
9.3 - Crie uma funçião que, quando dada uma tabela, calcula a soma e a média de cada coluna. (Se voce preferir reorganizar seu representacao da tabela fica a vontage)
9.4 - Pode adicionar funciones pra calcular o máximo e mínimo dos colunas.