Clojure - Perpustakaan

Satu hal yang membuat perpustakaan Clojure begitu kuat adalah jumlah perpustakaan yang tersedia untuk kerangka kerja Clojure. Kami telah melihat begitu banyak pustaka yang digunakan dalam contoh sebelumnya untuk pengujian web, pengembangan web, mengembangkan aplikasi berbasis ayunan, pustaka jdbc untuk menghubungkan ke database MySQL. Berikut ini hanyalah beberapa contoh dari beberapa perpustakaan lainnya.

data.xml

Pustaka ini memungkinkan Clojure bekerja dengan data XML. Versi pustaka yang akan digunakan adalah org.clojure / data.xml "0.0.8". Data.xml mendukung parsing dan emitting XML. Fungsi parsing akan membaca XML dari Reader atau InputStream.

Contoh

Berikut contoh pengolahan data dari string menjadi 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

Pustaka ini memungkinkan Clojure untuk bekerja dengan data JSON. Versi pustaka yang akan digunakan adalah org.clojure / data.json "0.2.6".

Contoh

Berikut adalah contoh penggunaan library ini.

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

Keluaran

Program di atas menghasilkan keluaran sebagai berikut.

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

data.csv

Pustaka ini memungkinkan Clojure untuk bekerja dengannya ‘csv’data. Versi pustaka yang akan digunakan adalah org.clojure / data.csv "0.1.3".

Contoh

Berikut adalah contoh penggunaan library ini.

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

Pada kode di atas, fungsi 'csv' pertama-tama akan membaca file bernama in-file.csvdan letakkan semua data di variabel dalam file. Selanjutnya, kami menggunakan fungsi tulis-csv untuk menulis semua data ke file bernamaout-file.csv.