Clojure - Bibliotecas

Una cosa que hace que la biblioteca Clojure sea tan poderosa es la cantidad de bibliotecas disponibles para el marco Clojure. Ya hemos visto tantas bibliotecas utilizadas en nuestros ejemplos anteriores para pruebas web, desarrollo web, desarrollo de aplicaciones basadas en swing, la biblioteca jdbc para conectarse a bases de datos MySQL. A continuación se muestran solo un par de ejemplos de algunas bibliotecas más.

data.xml

Esta biblioteca permite a Clojure trabajar con datos XML. La versión de la biblioteca que se utilizará es org.clojure / data.xml "0.0.8". El archivo data.xml admite el análisis y la emisión de XML. Las funciones de análisis leerán XML de un Reader o InputStream.

Ejemplo

A continuación, se muestra un ejemplo del procesamiento de datos de una cadena 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

Esta biblioteca permite que Clojure funcione con datos JSON. La versión de la biblioteca que se utilizará es org.clojure / data.json "0.2.6".

Ejemplo

A continuación se muestra un ejemplo sobre el uso de esta biblioteca.

(ns clojure.examples.example
   (:require [clojure.data.json :as json])
   (:gen-class))
(defn Example []
   (println (json/write-str {:a 1 :b 2})))
(Example)

Salida

El programa anterior produce la siguiente salida.

{\"a\":1,\"b\":2}

data.csv

Esta biblioteca permite que Clojure funcione con ‘csv’datos. La versión de la biblioteca que se utilizará es org.clojure / data.csv "0.1.3".

Ejemplo

A continuación se muestra un ejemplo sobre el uso de esta 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)

En el código anterior, la función 'csv' leerá primero un archivo llamado in-file.csvy poner todos los datos en la variable en el archivo. A continuación, usamos la función write-csv para escribir todos los datos en un archivo llamadoout-file.csv.