0

我刚开始学习Scheme,遇到了一些麻烦。我在 Windows 上使用 petite chez 方案(64 位)。我一直在阅读使用函数 'every' 、 'keep' 和 'accumulate' 的示例,据我所知,这些函数是内置的并且由 petite 知道(即不必在使用前定义)。但是,当我输入已阅读的示例进行测试时,会返回错误。例如-

;; To make nouns plural

(define (plural noun)

(if (equal? (last noun) ’y)

(word (bl noun) ’ies)

(word noun ’s)))


> (every plural ’(beatle turtle holly kink zombie))   ;; Example input

(BEATLES TURTLES HOLLIES KINKS ZOMBIES)               ;; Expected output

相反,我收到错误“变量每个未绑定”。就好像“每个”都被视为变量而不是已知函数。当我尝试使用“keep”和“accumulate”的示例时,我收到了同样的错误。我认为编码是正确的(因为它是从我正在阅读的书中复制的)。我认为这些功能是内置的,不需要定义,或者还有其他问题,我错了吗?希望有人可以对此有所了解。

4

1 回答 1

1

every过程在SRFI-1中定义,不是标准语言的一部分。有关 Chez Scheme 中可用的 SRFI,请参阅此项目

此外,我认为这不是every您正在寻找的程序,您想要做的是map- 请先查看文档!

(map plural '(beatle turtle holly kink zombie))
于 2014-04-20T17:41:56.233 回答