Clojure - Bibliotecas
Uma coisa que torna a biblioteca Clojure tão poderosa é o número de bibliotecas disponíveis para o framework Clojure. Já vimos tantas bibliotecas usadas em nossos exemplos anteriores para teste da web, desenvolvimento da web, desenvolvimento de aplicativos baseados em swing, a biblioteca jdbc para conexão com bancos de dados MySQL. A seguir estão apenas alguns exemplos de mais algumas bibliotecas.
data.xml
Esta biblioteca permite que Clojure trabalhe com dados XML. A versão da biblioteca a ser usada é org.clojure / data.xml "0.0.8". O data.xml oferece suporte para análise e emissão de XML. As funções de análise lerão XML de um Reader ou InputStream.
Exemplo
A seguir está um exemplo do processamento de dados de uma string para XML.
(ns clojure.examples.example
(use 'clojure.data.xml)
(:gen-class))
(defn Example []
(let [input-xml (java.io.StringReader. "<?xml version = \"1.0\"
encoding = \"UTF-8\"?><example><clo><Tutorial>The Tutorial
value</Tutorial></clo></example>")]
(parse input-xml)))
#clojure.data.xml.Element{
:tag :example, :attrs {}, :content (#clojure.data.xml.Element {
:tag :clo, :attrs {}, :content (#clojure.data.xml.Element {
:tag :Tutorial, :attrs {},:content ("The Tutorial value")})})}
(Example)
data.json
Esta biblioteca permite que Clojure trabalhe com dados JSON. A versão da biblioteca a ser usada é org.clojure / data.json "0.2.6".
Exemplo
A seguir está um exemplo do uso desta biblioteca.
(ns clojure.examples.example
(:require [clojure.data.json :as json])
(:gen-class))
(defn Example []
(println (json/write-str {:a 1 :b 2})))
(Example)
Resultado
O programa acima produz a seguinte saída.
{\"a\":1,\"b\":2}
data.csv
Esta biblioteca permite que Clojure trabalhe com ‘csv’dados. A versão da biblioteca a ser usada é org.clojure / data.csv "0.1.3".
Exemplo
A seguir está um exemplo do uso desta biblioteca.
(ns clojure.examples.example
(require '[clojure.data.csv :as csv]
'[clojure.java.io :as io])
(:gen-class))
(defn Example []
(with-open [in-file (io/reader "in-file.csv")]
(doall
(csv/read-csv in-file)))
(with-open [out-file (io/writer "out-file.csv")]
(csv/write-csv out-file
[[":A" "a"]
[":B" "b"]])))
(Example)
No código acima, a função 'csv' lerá primeiro um arquivo chamado in-file.csve coloque todos os dados na variável no arquivo. Em seguida, estamos usando a função write-csv para gravar todos os dados em um arquivo chamadoout-file.csv.