按照http://www.scheme.com/csug8/libraries.html中的说明,我可以构建一个库smcho.ss
。
(library (smcho simple (1))
(export hello factorial)
(import (rnrs (6)))
(define (hello x)
(+ x 10))
(define (factorial n)
(cond
[(<= n 0) 1]
[else (* n (factorial (- n 1)))]))
)
然后,使用plt-r6rs --install smcho.ss
(http://lists.racket-lang.org/users/archive/2009-September/035465.html)安装它。
但是,当我尝试在top_level.ss中使用它时,
(import (smcho simple) (rnrs (6)))
(print (factorial 10))
我有错误消息
scheme> plt-r6rs top_level.sc
get-module-code: no such file: #<path:/Users/smcho/Desktop/scheme_lib/top_level.sc>
context...:
可能有什么问题?
我检查了~/Library/Racket/6.3/collects
目录存储了正确编译的库,所以问题不应该来自库。
答案 0 :(得分:0)
问题在于我应该使用(display (factorial 10))
而不是print
。此外,在DrRacket GUI中,我需要添加#lang r6rs
来运行它。
当display
或print
导致问题时,我不确定为什么pr
没问题。