Applying the Y-Combinator to a recursive function with two arguments in Clojure? <p>Doing the Y-Combinator for a single argument function such as factorial or fibonacci in Clojure is well documented: <a href="http://rosettacode.org/wiki/Y_combinator#Clojure" rel="nofollow noreferrer">http://rosettacode.org/wiki/Y_combinator#Clojure</a> </p> <p>My question is - how do you do it for a two argument function such as this getter for example?</p> <p>(Assumption here is that I want to solve this problem recursively and this non-idiomatic clojure code is there deliberately for another reason)</p> <p>[non y-combinator version]</p> <pre><code>(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)) </code></pre>