Facendo la Y-Combinator per una singola funzione argomento come fattoriale o Fibonacci in Clojure è ben documentato: http://rosettacode.org/wiki/Y_combinator#ClojureApplicando l'Y-Combinator a una funzione ricorsiva con due argomenti in Clojure?
La mia domanda è - come si fa a farlo per una funzione a due argomenti come questo getter per esempio?
(Assunzione qui è che io voglio risolvere questo problema in modo ricorsivo e questo codice clojure non idiomatica è lì deliberatamente per un altro motivo)
[Versione y-Combinator non]
(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))' è davvero un modo elaborato di dire '(= n 1)'. Perché la quarta e la quinta riga rientrano più del terzo, a proposito? – Svante
C'è qualche ragione specifica per rendere questo getter basato su 1? – Svante