我试图这样做:

#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的计划”,因为这是不相关的其他实现)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top