为什么这个 Scheme 函数不能编译?

Why won't this Scheme function compile?

我有这个方案函数,我应该 运行 整数列表,但我不知道错误是什么意思。错误指出:“if: 需要一个问题和两个答案,但在中找到了 4 个部分:(if(null?list) '() (cons (+ 1 (car list)) (f(cdr list))))。这个函数缺少什么?'() 究竟做了什么?谢谢!我以前从未使用过 Scheme。

(define (f list)
    (if (null? list)
        ’()
        (cons (+ 1 (car list)) (f (cdr list)))))

您使用了错误的引用(可能是复制粘贴错误?)。

使用 ' 而不是

您用来引用空列表的字符是右引号,U+2019。如果您使用 ascii 撇号 '、U+0027

,您的代码可以正常工作
(define (f list)
    (if (null? list)
        '()
        (cons (+ 1 (car list)) (f (cdr list)))))