0

CommonLispのネストされたリストは本当に私を混乱させた。ここに問題があります:

再帰を使用して 、最初の引数が2番目の引数(ネストされたリストである可能性があります)にある場合は(nested-list 'b '(a (b c) d))戻り、それ以外の場合は戻ります。tnil

試しfindましたが、最初の引数が。の場合にのみ機能します'(b c)。ラムダ式に目を向けました。最初に2番目の引数をフラット化してから、を使用eqして引数を比較します。

(defun nested-list (x y)
  (cond     
    ((null y) ())    
    (t (append (lambda (flatten) (first y))

それから私は立ち往生しました。ラムダエクスペッションについて多くのことを読んだとしても、それでも私は混乱しました。必要なときにリコールする方法がわかりません。funcall関数は知っていましたが、取得できないことはご存知でしょう。Common Lispを5日間学んだばかりなので、ヒントを教えていただければ幸いです。どうもありがとう!

4

1 に答える 1