I'm trying to require
one file in another while working with Racket. I have two files in the same folder. They are world.rkt
and 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))))))
Now, I can type (require "ant.rkt")
in the REPL, and then when I type (gen-cell 'none 'white)
I get the error:
reference to undefined identifier: gen-cell
I've looked up documentation on imports and exports, but I can't get it to import correctly. I feel like it's something really simple that I just don't understand about the syntax.
How should I change my code so that I can use gen-grid
and gen-cell
in ant.rkt
?