ラケット/ドクターに電話したら 次のコードをラケットします。
> add1
私は得る:
#<procedure:add1>
Rackunit と呼ばれる単体テスト用のライブラリを使用している場合、次のようにします。
(require rackunit)
(check-equal? add1 #<procedure:add1>)
テストは構文エラーで失敗します:
read: bad syntax `#<'
なぜこれが起こるのですか?
ラケット/ドクターに電話したら 次のコードをラケットします。
> add1
私は得る:
#<procedure:add1>
Rackunit と呼ばれる単体テスト用のライブラリを使用している場合、次のようにします。
(require rackunit)
(check-equal? add1 #<procedure:add1>)
テストは構文エラーで失敗します:
read: bad syntax `#<'
なぜこれが起こるのですか?
多くの種類のデータについて、何を戻すことwriteができますreadか。ただし、プロシージャの場合はできないため、読み取り不能な値として出力されます。
プロシージャーの等価性は、不透明な構造の等価性に似ています。同一性のみをチェックします。これだけ必要な場合でも、手順をどこかに保存して、check-equal を使用できますか? (たとえば、add1 を含むリストは、add1 を含むリストと比較されます)。手順が論理的に同じであることを実際に確認する必要がある場合、これは一般的に不可能です。