我正在使用Racket,尝试在一个文件中require
另一个文件。这两个文件都在同一个文件夹中,分别为world.rkt
和ant.rkt
。
world.rkt
文件内容如下:
(module world racket
(provide gen-grid gen-cell)
(define (gen-cell item fill)
(cons item fill))
(define (gen-grid x y fill)
(begin
(define (gen-row x fill)
(cond ((> x 0) (cons (gen-cell (quote none) fill)
(gen-row (- x 1) fill)))
((<= x 0) (quote ()) )))
(cond ((> y 0) (cons (gen-row x fill)
(gen-grid x (- y 1) fill)))
((<= y 0) (quote ()) )))))
ant.rkt
:
(module ant racket
(require "world.rkt")
(define (insert-ant grid x y)
(cond ((> y 0) (insert-ant (cdr grid) x (- y 1)))
((< y 0) 'Error)
((= y 0) (begin
(define y-line (car grid))
(define (get-x line x)
(cond ((> x 0) (get-x (cdr line) (- x 1)))
((< x 0) 'Error)
(= x 0) (gen-cell 'ant (cdr (car line))) ))
(get-x y-line x))))))
现在,我可以在REPL中键入
(require "ant.rkt")
,然后当我键入(gen-cell 'none 'white)
时,会出现错误:reference to undefined identifier: gen-cell
我查阅了有关导入和导出的文档,但我无法正确地导入它。我觉得这是一些很简单的语法问题,我还没有弄明白。
我应该如何更改我的代码,以便我可以在ant.rkt
中使用gen-grid
和gen-cell
?