gpt4 book ai didi

clojure - 判断 x 是否是 y 的倍数的函数

转载 作者:行者123 更新时间:2023-12-04 16:50:41 25 4
gpt4 key购买 nike

请看下面的函数。我想传递因子向量并测试向量中的任何元素是否是 x 的因子。我该怎么做?

(defn multiple?
"Takes a seq of factors, and returns true if x is multiple of any factor."
([x & factors] (for [e m] ))
([x factor] (= 0 (rem x factor))))

最佳答案

您可以尝试使用 somemap :

(defn multiple? [x & factors]
(some zero? (map #(rem x %) factors)))

此外,如果所有测试都失败,some 返回nil,如果您需要它实际返回false,您可以放置​​一个true?。在那里:

(defn multiple? [x & factors]
(true? (some zero? (map #(rem x %) factors))))

请注意 some 短路并且 map 是惰性的,因此 multiple? 会在找到匹配项后立即停止。例如以下代码针对序列 1,2,3,4,... 进行测试。

=> (apply multiple? 10 (map inc (range)))
true

显然,只有当 multiple? 没有针对序列中的每个数字进行测试时,此计算才能终止。

关于clojure - 判断 x 是否是 y 的倍数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11093452/

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