Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“是可选的”;“回电”;Clojurescript中的参数不受欢迎?_Clojure_Clojurescript - Fatal编程技术网

“是可选的”;“回电”;Clojurescript中的参数不受欢迎?

“是可选的”;“回电”;Clojurescript中的参数不受欢迎?,clojure,clojurescript,Clojure,Clojurescript,在Clojurescript中编写高阶函数时,实际上可以忽略传入函数的参数 例如,以下是合法的Clojurescript代码,但非法的Clojure代码: (def x(原子5)) (互换!x(fn[]6)) 高阶“swap!”函数需要一个接受一个参数的函数,但您可以忽略它,程序仍然可以正常编译/运行 如果使用此功能使我的Clojurescript代码更干净,是否会被视为不好的形式?或者,这只是滥用Clojurescript限制?有什么意见吗 谢谢你的想法 在我看来(fn[\u]6)看起来非常地

在Clojurescript中编写高阶函数时,实际上可以忽略传入函数的参数

例如,以下是合法的Clojurescript代码,但非法的Clojure代码:

(def x(原子5))

(互换!x(fn[]6))

高阶“swap!”函数需要一个接受一个参数的函数,但您可以忽略它,程序仍然可以正常编译/运行

如果使用此功能使我的Clojurescript代码更干净,是否会被视为不好的形式?或者,这只是滥用Clojurescript限制?有什么意见吗

谢谢你的想法

在我看来
(fn[\u]6)
看起来非常地道,没有比
(fn[]6)
更晦涩难懂。它甚至更具表现力,因为它明确表示忽略了参数

编写完整(正确)表单的另一个优点是代码的可移植性



编辑:顺便说一句,您的示例可以使用以下命令重写:
(swap!x(持续6))
持续
创建一个函数,该函数接受任意数量的参数,并始终返回传递给
持续

的参数。我发布了一个答案,但我不确定这是否是您要问的问题。不是真的回答您的问题,但对于这种特殊情况,您应该使用
重置而不是
交换。它做你想要的。