Clojure - Biblioteki

Jedną rzeczą, która sprawia, że ​​biblioteka Clojure jest tak potężna, jest liczba bibliotek dostępnych dla frameworka Clojure. Widzieliśmy już tak wiele bibliotek używanych we wcześniejszych przykładach do testowania sieci, tworzenia stron internetowych, tworzenia aplikacji opartych na swing, bibliotekę jdbc do łączenia się z bazami danych MySQL. Poniżej znajduje się tylko kilka przykładów kilku kolejnych bibliotek.

data.xml

Ta biblioteka umożliwia Clojure pracę z danymi XML. Używana wersja biblioteki to org.clojure / data.xml „0.0.8”. Plik data.xml obsługuje analizę i emisję XML. Funkcje analizujące odczytują XML z czytnika lub strumienia danych wejściowych.

Przykład

Poniżej znajduje się przykład przetwarzania danych z ciągu znaków na 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

Ta biblioteka umożliwia Clojure pracę z danymi JSON. Używana wersja biblioteki to org.clojure / data.json "0.2.6".

Przykład

Poniżej znajduje się przykład użycia tej biblioteki.

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

Wynik

Powyższy program generuje następujące dane wyjściowe.

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

data.csv

Ta biblioteka pozwala Clojure pracować z ‘csv’dane. Używana wersja biblioteki to org.clojure / data.csv „0.1.3”.

Przykład

Poniżej znajduje się przykład użycia tej biblioteki.

(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)

W powyższym kodzie funkcja „csv” najpierw odczyta plik o nazwie in-file.csvi umieść wszystkie dane w zmiennej w pliku. Następnie używamy funkcji write-csv do zapisania wszystkich danych do pliku o nazwieout-file.csv.