“是可选的”;“回电”;Clojurescript中的参数不受欢迎?
在Clojurescript中编写高阶函数时,实际上可以忽略传入函数的参数 例如,以下是合法的Clojurescript代码,但非法的Clojure代码: (def x(原子5)) (互换!x(fn[]6)) 高阶“swap!”函数需要一个接受一个参数的函数,但您可以忽略它,程序仍然可以正常编译/运行 如果使用此功能使我的Clojurescript代码更干净,是否会被视为不好的形式?或者,这只是滥用Clojurescript限制?有什么意见吗 谢谢你的想法 在我看来“是可选的”;“回电”;Clojurescript中的参数不受欢迎?,clojure,clojurescript,Clojure,Clojurescript,在Clojurescript中编写高阶函数时,实际上可以忽略传入函数的参数 例如,以下是合法的Clojurescript代码,但非法的Clojure代码: (def x(原子5)) (互换!x(fn[]6)) 高阶“swap!”函数需要一个接受一个参数的函数,但您可以忽略它,程序仍然可以正常编译/运行 如果使用此功能使我的Clojurescript代码更干净,是否会被视为不好的形式?或者,这只是滥用Clojurescript限制?有什么意见吗 谢谢你的想法 在我看来(fn[\u]6)看起来非常地
(fn[\u]6)
看起来非常地道,没有比(fn[]6)
更晦涩难懂。它甚至更具表现力,因为它明确表示忽略了参数
编写完整(正确)表单的另一个优点是代码的可移植性
编辑:顺便说一句,您的示例可以使用以下命令重写:
(swap!x(持续6))
持续
创建一个函数,该函数接受任意数量的参数,并始终返回传递给持续
的参数。我发布了一个答案,但我不确定这是否是您要问的问题。不是真的回答您的问题,但对于这种特殊情况,您应该使用重置代码>而不是交换代码>。它做你想要的。