返回的數據類型如下表達作品 -從FN字面
((fn[n][(take n (range))]) 10)
雖然低於拋出一個錯誤 -
(#([(take % (range))]) 10)
爲什麼不能我只是從字面函數返回一個數據類型?
返回的數據類型如下表達作品 -從FN字面
((fn[n][(take n (range))]) 10)
雖然低於拋出一個錯誤 -
(#([(take % (range))]) 10)
爲什麼不能我只是從字面函數返回一個數據類型?
。
#(do [1 2])
由於@Mars表示您也可以使用vector
函數的替代方法。
#(vector 1 2)
#
匿名函數宏擴展爲fn
形式,例如,
#([1 2])
擴展爲(fn* [] ([1 2]))
,你可以看到,當這個叫,你試圖返回向量將被作爲函數調用,因爲沒有提供參數,這將失敗。這是你有同樣的問題:如果你絕對要使用的#
讀者宏觀只是使用do
匿名函數返回的「數據」
#([(take % (range))])
擴展爲
(fn* [x] ([(take x (range))]))
我沒有訪問計算機,但宏展開fn文字,你會看到不同之處。 –