返回的数据类型如下表达作品 -从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文字,你会看到不同之处。 –