iyi belgelenmiştir: http://rosettacode.org/wiki/Y_combinator#ClojureY-Combinator'ı Clojure'da iki argümanlı bir özyinelemeye mi uygulamak istiyorsunuz? Böyle Clojure içinde faktöryel veya fibonacci olarak
Sorum şu - nasıl bir iki argüman fonksiyonu için yaparım örneğin bu gaz giderici olarak?
(burada Varsayım ı yinelemeli bu sorunu çözmek istiyoruz ve bu sigara deyimsel Clojure kod başka bir nedenle kasıtlı olmasıdır)
[olmayan y combinator versiyonu]
(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))' gerçekten 'söylemek ayrıntılı bir yoldur (= n 1)'. Bu arada dördüncü ve beşinci hat üçte birinden daha fazla girintiye neden giriyor? – Svante
Bu alıcı 1 temelli yapmak için belirli bir neden var mı? – Svante