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.