Bạn có thể nhầm lẫn hai cách khác nhau để nhập mã. Bạn có thể làm theo cách này:
user> (use 'clojure.zip)
Hoặc khi bạn đang tuyên bố một không gian tên trong một tập tin nguồn:
(ns foo
(:use clojure.zip))
Phiên bản thứ hai là một vĩ mô được mở rộng sang người đầu tiên.
Bên ngoài (ns)
, làm (:use "zip")
đang xảy ra để điều trị :use
như một hàm và gọi nó với "zip"
như tham số của nó (tức là cố gắng sử dụng các chuỗi "zip"
như một bộ sưu tập và tìm kiếm chìa khóa :use
trong nó), mà không làm gì .
clojure.zip
có một số chức năng có tên xung đột với mọi thứ trong clojure.core
mặc dù, vì vậy bạn có phải làm một cái gì đó như thế này:
user> (use '(clojure [zip :rename {next next-zip replace replace-zip remove remove-zip}]))
Hoặc tốt nhất là điều này:
user> (require '(clojure [zip :as zip]))
Với sau này bạn có thể tham khảo các chức năng như (zip/vector-zip data)
như bạn muốn.
Xem tài liệu cho require và refer và trang nói về libs.
Nguồn
2009-07-23 02:11:48
Cảm ơn cho câu trả lời toàn diện ... Tôi đã học được một vài điều từ đó. :) – jsight