簡體   English   中英

Clojure-具有未綁定功能的地圖

[英]Clojure - map with unbound function

我正在Try Clojure中的Clojure教程中進行介紹,在該教程中我們被介紹了定義函數的方法-

(defn square [x] (* x x))

然后將其應用於數字列表:

(map square [1 2 3 4])

會立即打印出錯誤: java.lang.IllegalStateException: Attempting to call unbound fn: #'sandbox14750/square

例如,當我嘗試映射函數inc ,它可以正常工作-內置函數inc和我的square什么區別?

第一次嘗試運行它時遇到了一些麻煩,盡管刷新頁面后一切正常。

Give me some Clojure:
> (defn square [x] (* x x))
#'sandbox6361/square
> (square 4)
16
> (map square [1 2 3 4])
(1 4 9 16)

如果要確保您的函數在需要時仍然可用,則可以將函數存儲在本地語言中,而不是像這樣的vars中:

> (let [square (fn [x] (* x x))] (map square [1 2 3 4]))
(1 4 9 16)
>  

諸如#clojure上的Clojurebot之類的許多sandbpxed環境不允許您定義任意狀態,因此值得一提的是,可以以多種方式存儲函數,而不僅僅是在vars中存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM