2
我想返回一个数字的因子,并且这些因子应该在给定的范围内。像:如何在clojure中判断为真时返回相应的数字
user=> (factors (range 1 10) 12)
(1 2 3 4 6)
我写了一些代码,但他们返回true或false。我的代码是:
(defn factors [range num]
(map #(= (mod num %) 0) range))
测试结果:
user=> (factors (range 1 10) 12)
(true true true true false true false false false)
我怎样才能获得的数量(1 2 3 4 6)
,而不是真假?非常感谢!
了你!非常感谢! –
我会避免使用'range'作为名称,因为它是一个相关的标准函数。这也是一种误导,因为任何数字序列都会这样做 - 它不一定是一个范围。例如'(因素[2 8 9] 12)=>(2)'。也许'候选人'会适合。 – Thumbnail
@Thumbnail同意。我刚刚使用'范围'因为它是在原来的问题;我更新了我的答案,而不是使用'candidates'。 –