【发布时间】:2011-01-28 18:51:40
【问题描述】:
我正在尝试学习 Clojure,但我的突触似乎与 Smalltalk 硬连线。
这个函数的等价物是什么?
[:n:k | (1 到: k) 注入: 1 到: [:c :i | c * (n - k + i / i)]]- 这是 n, k 的二项式系数 - 也称为“选择”函数,表示 n 个事物的组合数 k 次
【问题讨论】:
-
太棒了。这就是我想出的 (defn choose [n k] (reduce (fn [c i] (* c (/ (+ (- n k) i) i))) 1 (range 1 (+ k 1))))。一旦我弄清楚如何将 Smalltalk 中缀符号转换为 Lisp,这很容易,但语法仍然伤我的脑筋 :)
-
你也可以用
(inc k)代替(+ k 1)。
标签: clojure lisp smalltalk combinations