gpt4 book ai didi

clojure - 为什么+(或*)对于零参数的行为与-(或/)不同?

转载 作者:行者123 更新时间:2023-12-02 16:49:50 26 4
gpt4 key购买 nike

当您使用零参数调用 +

user=> (+)
0

我得到0,因为它是+的不变元素。它的工作原理与*类似

user=> (*)
1

为什么这对 -/ 不起作用?

user=> (-)
ArityException Wrong number of args (0) passed to: core/- clojure.lang.AFn.throwArity (AFn.java:429)

user=> (/)
ArityException Wrong number of args (0) passed to: core// clojure.lang.AFn.throwArity (AFn.java:429)

最佳答案

请注意,当给定单个参数时,-/ 的工作方式有所不同:(- x 0) 不同(-x)(/x 1)(/x) 也是如此。 +* 的实际论点是,当您的论点可能事先未知时,您可以只 applyreduce 列表(可能为空)。对于除法和求反则不然,因为你很少需要:

(apply / list)

你至少有一个论点:

#(apply / (cons % list))

这不是权威,只是猜测。

关于clojure - 为什么+(或*)对于零参数的行为与-(或/)不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33035502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com