簡単な英文(肯定文)を疑問文にする以下のプログラムを作成しました。
入力例:(question '(this is a simple lisp function))
出力例:(is this a simple lisp function ?)
LISP
1(defun question (arg) 2 ( 3 (let ( (be) (a ()) ) 4 (loop 5 (cond ( (equal be (car arg)) (return arg) ) ) 6 (setq be (car arg)) 7 (setq arg (cdr arg)) 8 (cond ( (or (equal 'am be) (equal 'is be) (equal 'are be) 9 (equal 'was be) (equal 'were be) ) 10 (setq arg (cons be (append (reverse a) arg))) 11 ) 12 ) 13 (setq a (cons be a) ) 14 ) 15 ) 16 ) 17)
すると以下のエラーが表示されました。
*** - SYSTEM::%EXPAND-FORM: (LET ((BE) (A NIL)) (LOOP (COND ((EQUAL BE (CAR ARG)) (RETURN ARG))) (SETQ BE (CAR ARG)) (SETQ ARG (CDR ARG)) (COND ((OR (EQUAL 'AM BE) (EQUAL 'IS BE) (EQUAL 'ARE BE) (EQUAL 'WAS BE) (EQUAL 'WERE BE)) (SETQ ARG (CONS BE (APPEND (REVERSE A) ARG))))) (SETQ A (CONS BE A)))) should be a lambda expression The following restarts are available: ABORT :R1 Abort main loop
このエラーの意味と、どうすれば直るのかを回答していただけると幸いです。
環境は、Windows10で、バーチャルボックス上でubuntuを起動しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 09:55