Haciendo la Y-Combinator para una sola función argumento como factorial o de Fibonacci en Clojure está bien documentado: http://rosettacode.org/wiki/Y_combinator#Clojure¿Aplica el Combinador Y a una función recursiva con dos argumentos en Clojure?
Mi pregunta es - ¿cómo se hace para una función de dos argumentos como este captador por ejemplo?
(suposición aquí es que yo quiero resolver este problema de forma recursiva y este código clojure no idiomática está allí deliberadamente por otra razón)
[versión de Y-Combinator no]
(defn get_ [n lat]
(cond
(empty? lat)()
(= 0 (- n 1)) (first lat)
true (get_ (- n 1) (rest lat))))
(get_ 3 '(a b c d e f g h i j))
'(= 0 (- n 1))' es realmente una forma elaborada de decir '(n = 1)'. ¿Por qué la cuarta y la quinta línea tienen más sangría que la tercera, por cierto? – Svante
¿Hay alguna razón específica para hacer este getter 1? – Svante