2016-03-24 6 views
0

私は比較的新しいです。私は単語がリストに存在するかどうかを決定する関数に取り組んでいます。Lispエラー、形式の定義されていない演算子X

(defun is-word-in-list(x lst) 
    (cond ((null lst) NIL) 
     ((not (equal (car lst) x)) 
      (is-word-in-list(x (cdr lst)))) 
     (t 
      t 
     ) 
    ) 
) 

私はこのコードをコンパイルすることができていますが、私は を使用してこの機能を実行しようとすると、あるワード・イン・リスト「こんにちは」「(なぜハロー) 私はというエラーを取得しています

Error: Undefined operator X in form (X (CDR LST)) .

私には何が欠けていますか?

答えて

1

再帰呼び出しで括弧が多すぎます。次のことを考えてみましょう:

  • (is-word-in-list (x (cdr lst)))は、JavaScriptのシンタックスで
  • (is-word-in-list x (cdr lst))isWordInList(x(cdr(lst)))と同等であることは、JavaScriptのシンタックスで

isWordInList(x, cdr(lst))と同等である違いを参照してください?

+1

男!これは働いた –

関連する問題