title: find free variables in lambda expression
body: <p>Does anyone know how I can figure out the free variables in a lambda expression? Free variables are the variables that aren't part of the lambda parameters.</p>
  
  <p>My current method (which is getting me nowhere) is to simply use car and cdr to go through the expression. My main problem is figuring out if a value is a variable or if it's one of the scheme primitives. Is there a way to test if something evaluates to one of scheme's built-in functions? For example:</p>
  
  <pre><code>(is-scheme-primitive? 'and)
  ;Value: #t
  </code></pre>
  
  <p>I'm using MIT scheme.</p>