返回设置了第一个X位的数字

时间:2009-07-14 18:21:56

标签: functional-programming clojure

在clojure中实现这一目标的更有效方法是什么:

(defn ones
  ([n] (ones n 1 1))
  ([n i res]
    (if (< i n)
      (recur n (inc i) (bit-set res i))
      res)))

当涉及到数字类型时,它应该仍然“做正确的事”。

1 个答案:

答案 0 :(得分:6)

为什么不取2 ^(X-1)(仅设置第X位)然后减去1?