Estoy tratando de aprender Clojure pero mis sinapsis parecen estar conectadas a Smalltalk.¿Cuál es el equivalente de Clojure de inyectar: en: en Smalltalk?
¿Cuál es el equivalente de esta función?
[:n :k | (1 to: k) inject: 1 into: [:c :i | c * (n - k + i/i)]]
- este es el coeficiente binomial para n, k - también conocido como función "elegir", que representa el número de combinaciones de n cosas tomadas k veces
Impresionante. Esto es lo que se me ocurrió (defn elije [n k] (reduce (fn [c i] (* c (/ (+ (- n k) i) i))) 1 (rango 1 (+ k 1)))). Fue bastante fácil una vez que descubrí cómo convertir la notación de infijo Smalltalk a Lisp, pero la sintaxis aún me duele el cerebro :) –
En lugar de '(+ k 1)' también puedes usar '(inc k)'. –