[英]How do I use Zip in Clojure?
我對clojure非常新。 zip實用程序看起來很有趣但我似乎無法使用它。
我試過了
;; ZIP
(:use "zip")
(def data '[[a * b] + [c * d]])
(def dz (zip/vector-zip data))
但我得到了
java.lang.Exception: No such namespace: zip
你如何使用外部庫?
您可能會混淆兩種不同的方式來導入代碼。 你可以這樣做:
user> (use 'clojure.zip)
或者,當您在源文件中聲明命名空間時:
(ns foo
(:use clojure.zip))
第二個版本是一個擴展到第一個版本的宏。
在(ns)
,執行(:use "zip")
將要處理:use
作為函數:use
並以"zip"
作為參數調用它(即嘗試使用字符串"zip"
作為集合並查找key :use
in it),什么都不做。
clojure.zip
有一些函數,其名稱與clojure.core
東西沖突,所以你要么做這樣的事情:
user> (use '(clojure [zip :rename {next next-zip replace replace-zip remove remove-zip}]))
或者最好這樣:
user> (require '(clojure [zip :as zip]))
對於后者,您可以根據需要引用(zip/vector-zip data)
等函數。
我對clojure知之甚少,但這個小曲子似乎有效:
(require '[clojure.zip :as zip])
(def t '(:a (:b :d) (:c :e :f)))
(def z (zip/zipper rest rest cons t))
(zip/node z)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.