我刚开始学习Scheme,遇到了一些麻烦。我正在使用小chez方案(64位)与Windows。我一直在阅读使用函数"every"、"keep"one_answers"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
相反,我收到了错误"variableevery is not bound"。就好像"every"被视为一个变量,而不是一个已知函数。当我尝试使用"keep"one_answers"accumulate"的例子时,我也会收到同样的错误。我认为编码是正确的(因为它是从我正在读的书中复制的)。我错误地认为这些功能是内置的,不需要定义,还是存在其他问题?希望有人能对此有所了解。
every
过程在SRFI-1中定义,并且不是标准语言的部分。关于Chez方案中可用的SRFI,请参阅本项目。
此外,我不认为every
是你想要的程序,你想做的是map
——请先查看文档!
(map plural '(beatle turtle holly kink zombie))