我希望能够在Clojure中创建一个函数字面量,它可以接受任意数量的参数,但实际上并不使用它们。因此我发现了
但它们如何一起工作让我感到惊讶:
这看起来像我想要的(并且最终似乎有效),但这是discard宏应该如何工作吗?文档说::
%&
(函数字面量的"剩余参数")和 #_
("废弃"读取宏)。但它们如何一起工作让我感到惊讶:
=> (macroexpand `#(... #_ %&))
(fn* [& rest__125459__125460__auto__] (...))
这看起来像我想要的(并且最终似乎有效),但这是discard宏应该如何工作吗?文档说::
但显然,这里被忽略的#_后面的表单完全被阅读器跳过。
%&
表单具有副作用,即它会影响函数文字参数列表。我应该依赖这种行为还是看起来更像一个错误?
#_
宏的作用以及其正常行为。我的问题是关于#_ %&
的组合,是否有意图产生明显的副作用。也许我应该稍微修改一下问题的主题。 - alex