2016-03-24 17 views
0

Lisp için nispeten yeni. Bir listedeki bir sözcüğün var olup olmadığını belirleyen bir işlev üzerinde çalışıyorum.Lisp hatası, tanımsız operatör X formu

(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 
     ) 
    ) 
) 

Bu kodu derlemek mümkün, ama ben kullanarak bu işlevi çalıştırmayı denediğinizde olduğu kelimelik-in-liste "Merhaba" '(neden merhaba) Şu hatayı alıyorum

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

Neyi eksik?

cevap

1

Yinelemeli çağrıda çok fazla paranteziniz vardı. Aşağıdaki ele alalım:

  • (is-word-in-list (x (cdr lst)))
  • (is-word-in-list x (cdr lst)) farkı görün JavaScript sözdizimi

yılında isWordInList(x, cdr(lst)) eşdeğerdir JavaScript sözdiziminde isWordInList(x(cdr(lst))) eşdeğerdir?

+1

thx man! Bu çalıştı –

İlgili konular