http://www.archlinux.org/packages/extra/x86_64/drscheme/から drscheme を使用してい ます。
教科書のサンプル コードを使用しようとしていますが、「バインドされていない識別子」エラーが発生し続けます。スキームインタープリターが正しく構成されていないためですか?それともコードが単に間違っていますか?
以下にいくつかの例を示します。
入力:
#lang scheme
(define (equalimp lis1 lis2)
(COND
((NULL? lis1) (NULL? lis2))
((NULL? lis2) '())
((EQ? (CAR lis1) (CAR lis2)) (equalimp (CDR lis1) (CDR lis2)))
(ELSE '())
))
出力:
DrScheme、バージョン 4.2.5 [3m] へようこそ。言語: スキーム; メモリ制限: 128 MB。
expand: モジュール内のバインドされていない識別子 in: COND
入力:
#lang scheme
(define (quadratic_roots a b c)
(LET (
(root_part_over_2a
(/ (SQRT (- (* b b) (* 4 a c))) (* 2 a)))
(minus_b_over_2a (/ (- 0 b) (* 2 a)))
)
(DISPLAY (+ minus_b_over_2a root_part_over_2a))
(NEWLINE)
(DISPLAY (- minus_b_over_2a root_part_over_2a))
))
出力:
expand: モジュール内のバインドされていない識別子 in: LET
注: これを読んだので、LET* を使用してみました: stackoverflow.com/questions/946050/using-let-in-scheme ですが、同じエラーが発生します。
ありがとう !