gpt4 book ai didi

scheme - "unbound identifier"方案错误

转载 作者:行者123 更新时间:2023-12-04 14:52:33 26 4
gpt4 key购买 nike

我使用的 drscheme 来自:
http://www.archlinux.org/packages/extra/x86_64/drscheme/

我正在尝试使用教科书中的示例代码,但我不断收到“未绑定(bind)标识符”错误。是不是因为方案解释器配置不正确?还是代码完全错误?

这里有一些例子:

输入:

#lang scheme
(define (equalimp lis1 lis2)
(COND
((NULL? lis1) (NULL? lis2))
((NULL? lis2) '())
((EQ? (CAR lis1) (CAR lis2)) (equalimp (CDR lis1) (CDR lis2)))
(ELSE '())
))

输出:

欢迎使用 DrScheme,版本 4.2.5 [3m]。语言:方案;内存限制:128 MB。

展开:模块中的未绑定(bind)标识符:COND

输入:
#lang scheme
(define (quadratic_roots a b c)
(LET (
(root_part_over_2a
(/ (SQRT (- (* b b) (* 4 a c))) (* 2 a)))
(minus_b_over_2a (/ (- 0 b) (* 2 a)))
)
(DISPLAY (+ minus_b_over_2a root_part_over_2a))
(NEWLINE)
(DISPLAY (- minus_b_over_2a root_part_over_2a))
))

输出:

展开:模块中的未绑定(bind)标识符:LET

注意:我尝试使用 LET*,因为我阅读了以下内容:stackoverflow.com/questions/946050/using-let-in-scheme 但它会产生相同的错误。

谢谢 !

最佳答案

对于该语言设置,它看起来像是区分大小写的问题。我知道 Scheme 应该不区分大小写,但是当我尝试

(define (equalimp lis1 lis2)
(cond
((null lis1) (null? lis2))
((null? lis2) '())
((eq? (car lis1) (car lis2)) (equalimp (cdr lis1) (cdr lis2)))
(else '())
))

它工作得很好。

关于scheme - "unbound identifier"方案错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com