我對clojure非常陌生。該zip實用程序看起來很有趣,但我似乎無法使用它。如何在Clojure中使用Zip?
我試圖
;; ZIP
(:use "zip")
(def data '[[a * b] + [c * d]])
(def dz (zip/vector-zip data))
但我正在逐漸
java.lang.Exception: No such namespace: zip
如何喲使用外部庫?
我對clojure非常陌生。該zip實用程序看起來很有趣,但我似乎無法使用它。如何在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
的功能,並與"zip"
作爲參數調用它(即嘗試使用字符串"zip"
作爲一個集合,並在其中查找關鍵:use
),它什麼都不做。
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)
哎呀,我太遲了。 :) – jsight 2009-07-23 02:19:07
感謝全面的答案......我才知道從幾件事情。 :) – jsight 2009-07-23 02:20:38