Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
コードを実行しようとすると、このエラーが発生し続けます。
(let ((exp lambda (x y) (if (= y 1) x (* (exp x (- y 1)) x)))))
エラー:
let: bad syntax in: (let ((exp lambda (x y) (if (= y 1) x (* (exp x (- y 1)) x)))))
私の関数は再帰的な累乗を定義することになっていますが、let に問題があります。
の前に左括弧がなくlambda、letフォームに本文がありません。letまた、再帰関数の定義には使用できません。letrec(Scheme の場合) またはlabels(Common Lisp の場合)を使用する必要があります。おそらくあなたはこれを意味しました(スキーム):
lambda
let
letrec
labels
(letrec ((exp (lambda (x y) (if (= y 1) x (* (exp x (- y 1)) x))))) exp)