2011-01-28 111 views
14

我正在嘗試學習Clojure,但我的突觸似乎是硬連線到Smalltalk。什麼是Clojure注入的等價物:into:在Smalltalk中?

這個函數的等價物是什麼?

 
[:n :k | (1 to: k) inject: 1 into: [:c :i | c * (n - k + i/i)]] 
  • 這是n的二項式係數k - 也被稱爲「選擇」的功能,表示的n個東西組合的數量取k倍
+0

太棒了。這是我想出的(defn選擇[n k](reduce(fn [c i](* c(/(+( - n k)i)i)))1(range 1(+ k 1))))。一旦我想出如何將Smalltalk中綴表示法轉換爲Lisp,但語法仍然會傷害我的大腦,這很容易。:) – 2011-01-28 19:35:28

+2

而不是`(+ k 1)`,你也可以使用'(inc k)`。 – 2011-01-28 20:45:34

回答

14

Clojure的等效的lst inject: s into: f(reduce f s lst)

相關問題