((z 42) "hello"))
</code></pre>
<p>Already two beta-reductions were performed, let’s see what happen when we take the second element of the pair.</p>
<pre><code class="language-clojure">;; (snd ((pair "hello") 42))
((fn [p] (p (fn [x] (fn [y] y))))
 (fn [z] ((z 42) "hello")))
--&gt; ((fn [z] ((z 42) "hello")) ;p
     (fn [x] (fn [y] y)))
--&gt; (((fn [x] (fn [y] y)) 42) "hello")
--&gt; ((fn [y] y) 42)
--&gt; 42
</code></pre>
<p>Note that after 3 beta-reductions we found back our identity function.</p>
<p>