我如何在PLT的计划模块?
-
12-09-2019 - |
题
我试图这样做:
#lang scheme
(module duck scheme/base
(provide num-eggs quack)
(define num-eggs 2)
(define (quack n)
(unless (zero? n)
(printf "quack\n")
(quack (sub1 n)))))
不过,我得到这个错误:
module: illegal use (not at top-level) in:
(module duck scheme/base (provide num-eggs quack) (define num-eggs 2) (define (quack n) (unless (zero? n) (printf "quack\n") (quack (sub1 n)))))
什么是正确的方法是什么?
解决方案
您应该删除(module duck scheme/base
线(和封闭括号)。
当你#lang scheme
开始你的代码,它有效地把你的代码,使用scheme
语言模块中。如果你想要更小的语言,而不是您也可以使用#lang scheme/base
。
(要真正相信,这样做:
(parameterize ([read-accept-reader #t])
(call-with-input-file "some file" read))
在使用#lang
,看看你会得到什么一些源文件。)
(和BTW,你的问题的标题是坏的 - 它应该是“PLT的计划”,因为这是不相关的其他实现)
不隶属于 StackOverflow