Sto cercando di imparare Clojure ma le mie sinapsi sembrano essere cablate su Smalltalk.Qual è l'equivalente Clojure di iniettare: in: in Smalltalk?
Qual è l'equivalente di questa funzione?
[:n :k | (1 to: k) inject: 1 into: [:c :i | c * (n - k + i/i)]]
- questo è il coefficiente binomiale per n, k - nota anche come funzione "scegliere", che rappresenta il numero di combinazioni di n oggetti k volte taken
Impressionante. Questo è ciò che mi è venuto in mente (defn scegliere [n k] (riduci (fn [c i] (* c (/ (+ (- n k) i) i))) 1 (intervallo 1 (+ k 1)))). È stato abbastanza facile una volta capito come convertire la notazione infotain Smalltalk in Lisp, ma la sintassi mi fa ancora male al cervello :) –
Invece di '(+ k 1)' puoi anche usare '(inc k)'. –