Clojure - Biblioteche
Una cosa che rende la libreria Clojure così potente è il numero di librerie disponibili per il framework Clojure. Abbiamo già visto così tante librerie utilizzate nei nostri esempi precedenti per test web, sviluppo web, sviluppo di applicazioni basate su swing, la libreria jdbc per la connessione a database MySQL. Di seguito sono riportati solo un paio di esempi di poche altre librerie.
data.xml
Questa libreria consente a Clojure di lavorare con i dati XML. La versione della libreria da utilizzare è org.clojure / data.xml "0.0.8". Data.xml supporta l'analisi e l'emissione di XML. Le funzioni di analisi leggeranno XML da un Reader o InputStream.
Esempio
Di seguito è riportato un esempio dell'elaborazione dei dati da una stringa a 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
Questa libreria consente a Clojure di lavorare con i dati JSON. La versione della libreria da utilizzare è org.clojure / data.json "0.2.6".
Esempio
Di seguito è riportato un esempio sull'uso di questa libreria.
(ns clojure.examples.example
(:require [clojure.data.json :as json])
(:gen-class))
(defn Example []
(println (json/write-str {:a 1 :b 2})))
(Example)
Produzione
Il programma precedente produce il seguente output.
{\"a\":1,\"b\":2}
data.csv
Questa libreria consente a Clojure di lavorare con ‘csv’dati. La versione della libreria da utilizzare è org.clojure / data.csv "0.1.3".
Esempio
Di seguito è riportato un esempio sull'uso di questa libreria.
(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)
Nel codice precedente, la funzione "csv" leggerà prima un file chiamato in-file.csve inserisci tutti i dati nella variabile in-file. Successivamente, stiamo usando la funzione write-csv per scrivere tutti i dati in un file chiamatoout-file.csv.