在 Clojure 中为单个参数函数(例如阶乘或斐波那契)执行 Y-Combinator 有据可查: http ://rosettacode.org/wiki/Y_combinator#Clojure
我的问题是 - 例如,对于诸如这个 getter 之类的两个参数函数,您如何做到这一点?
(这里的假设是我想递归地解决这个问题,而这个非惯用的 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))