r5rs で ADT を作成しており、DrRacket を使用しています。#lang r5rs
ファイルの先頭に置き、DrRacket のソースから言語を決定を選択しましたが、ADT が定義されていないことがわかります。DrRacket バージョン 6.0 を使用しています。こんなことは初めてで、何が悪いのか理解できません。
私のADT
#lang r5rs
(#%require "queue.rkt") ;A required file
(#%provide (all-defined))
(define (my-ADT)
(let ((val1 '())
(val2 '()))
(define (foo) ...)
(define (bar) ...)
(define (dispatch msg)
(case msg
((foo) foo)
((bar) bar)
(else "Unknown message")))
dispatch))
my-ADT のインスタンスを作成しようとすると、次の出力が得られます。my-ADT: undefined; cannot reference an identifier before its definition
DrRacket の言語を上から外してR5RS#lang r5rs
を選択すると動作するようです。しかし、その後、私のファイルはまだ上部にあり、Define Language from Sourceがあります。リモートでそのファイルの言語としてR5RSを選択すると、ファイルに次のように表示されます。queue.rkt
#lang r5rs
#lang r5rs
my-ADT
default-load-handler: expected a `module' declaration
found: something else
in: #<path:/Users/path/path/path/queue.rkt>