title: Got some problems with CLISP's nested list and lambda expression
body: <p>Nested lists in Common Lisp really confused me.  Here is the problem:</p>
  
  <p><strong>By using recursion, let <code>(nested-list 'b '(a (b c) d))</code> return <code>t</code>
    if the first argument appears in the second argument (which could be
    a nested list), and <code>nil</code> otherwise.</strong></p>
  
  <p>I tried <code>find</code>, but it only works if the first argument is <code>'(b c)</code>.
  I turned my eyes on lambda expressions.  I want to flatten the second
  argument first, and then use <code>eq</code> to compare the arguments.</p>
  
  <pre><code>(defun nested-list (x y)
    (cond     
      ((null y) ())    
      (t (append (lambda (flatten) (first y))
  </code></pre>
  
  <p>Then I got stuck.  Even though I read a lot of stuff about lambda
  expessions, it still confused me.  I do not know how to recall it when
  I need, I knew the funcall function, but you know I just cannot get
  it.  I just learnt Common Lisp for 5 days, so I hope you can give me a
  hint.  Thanks a lot!</p>