做的Y Combinator的單個參數的功能,如Clojure的階乘或斐波那契是有據可查的: http://rosettacode.org/wiki/Y_combinator#Clojure將Y-Combinator應用於Clojure中帶有兩個參數的遞歸函數?
我的問題是 - 你如何代表兩個參數函數做到這一點,如本吸氣的例子嗎?
(這裏的假設是,我想遞歸地解決這個問題。這個非慣用的Clojure代碼是有刻意的另一個原因)
[非Y-組合子版]
(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))'真的是一個複雜的方式來表達'(= N 1)'。順便說一句,爲什麼第四行和第五行比第三行縮進更多? – Svante 2010-08-14 12:59:19
是否有任何特定的原因使這個基於getter 1的? – Svante 2010-08-14 13:01:34