方案错误:执行:未绑定的符号:“错误”

时间:2018-01-30 22:39:49

标签: scheme

我正在学校学习Scheme语言并试图使用error函数来处理角落案例。当我尝试this code from a similar question时,我得到了一个 错误Error: execute: unbound symbol: "error" [in?]而不是打印错误消息。

这是上面链接的示例代码:

(define in? 
  (lambda (el lst)
    (if (or (null? lst) (pair? lst))
        (if (null? lst) 
            #f
            (if (equal? (car lst) el )
                #t
                (in? el (cdr lst))))
        (error "ERROR"))))

输入和输出应该是:

(in? 1 '(2 5 3))
=> #f
(in? 3 '(2 5 3))
=> #t
(in? 1 5)
=> ERROR

但是,我得到了:

(in? 1 5)
Error: execute: unbound symbol: "error" [in?]

我正在使用repl.it在线编译器来编译Scheme代码。 任何人都知道为什么错误功能没有定义?我是否想定义自己的错误函数?如果是这样,有人能给我一个简单的例子来展示编写错误函数的基本风格吗?我从MIT Scheme Error System读到了参考文献,但我感到很遗憾。

1 个答案:

答案 0 :(得分:1)

就Scheme标准而言,没有名为error的程序或特殊表格。我已经在MIT Scheme中尝试了它,当然它已经被定义了,当使用时发出错误但在repl.it中,Scheme实现被称为BiwaScheme并且它与MIT Scheme锁不兼容

BiwaScheme doesn't seem to fully support any Scheme standard所以我建议你不要使用它。

我强烈建议您在学习Scheme时使用兼容的Scheme实现到当前标准之一。

相关问题