我有一个非常简单的模块,只有一个导出,在文件“m.rkt”
中#lang racket
(module m racket
(provide dec)
(define (dec n)
(- n 1)))
和使用它的文件“n.rkt”中的其他模块
#lang racket
(module n racket
(require "m.rkt")
(define (id x)
(+ 1 (dec x))))
在REPL,我尝试加载第二个模块
Welcome to Racket v6.0.1.
> (current-load-relative-directory "h:\\tmp")
> (require "n.rkt")
h:\tmp\n.rkt:8:10: dec: unbound identifier in module
in: dec
似乎找到两个模块表达式就好了,但无法从“m.rkt”解析dec
的导出。关于我做错了什么的任何想法?
更新:在两个文件中注释掉#lang racket
语言选择语法会使事情正常工作。根据“球拍指南”第6.2节,#lang racket
是模块声明的简写,因此我的(module ...)
表单声明了子模块。生活和学习......
答案 0 :(得分:3)
(从更新复制到问题)
在两个文件中注释掉#lang球拍语言选择语法会使事情正常工作。根据“球拍指南”第6.2节,#lang球拍是模块声明的简写,所以我的(模块...)表格是声明子模块。生活和学习......