Posn in scheme/DrRacket
<blockquote>
  <p>There is a make-posn built into racket by default. Here is an implementation with lambda.</p>
</blockquote>

<pre><code>(define (my-make-posn x y)
  (lambda (s)
    (cond [(symbol=? s 'x) x]
          [(symbol=? s 'y) y]))
</code></pre>

<p>But this returns <code>(lambda (a1) ...)</code> when I attempt <code>(my-make-posn 3 2)</code>.</p>

<p>Why is it like this? </p>

<p>I don't see how lambda is used here?</p>

<p>We type in <code>(my-make-posn 3 2)</code> and the function body is: </p>

<pre><code>(lambda (s)
  (cond [(symbol=? s 'x) x]
        [(symbol=? s 'y) y]))
</code></pre>

<p>So what happens to the <code>(3, 2)</code>?</p>