DrRacket有什么问题,无法引用未定义的标识符

时间:2013-10-27 03:02:37

标签: scheme racket

我定义了一个非常简单的函数“imap”。它接收两个参数并显示第一个参数。但是看看发生了什么奇怪的事情:

Screenshot

定义都是一样的。我只是改变了参数的名称! 为什么有些表格不起作用?

实施:r5rs的drRacket

这是源代码。 第一个工作正常:

> (define (imap x y) (display x))
> (imap 3 4)
3
> (imap + (list 1 2 3))
#<procedure:+>

现在,只需将“x”更改为“f”,将“y”更改为“x”:

> (define (imap f x) (dislay f))
> (imap + (list 1 2 3))
. . dislay: undefined;
 cannot reference undefined identifier

继续:

> (define (imap y x) (dislay y))
> (imap + (list 1 2 3))
. . dislay: undefined;
 cannot reference undefined identifier

继续,然后回到第一个定义:

> (define (imap x y) (dislay x))
> (imap + (list 1 2 3))
. . dislay: undefined;
 cannot reference undefined identifier
>

1 个答案:

答案 0 :(得分:3)

这是一个错字!你写了dislay,而不是正确的display。错误消息明确说明:

dislay: undefined;
cannot reference undefined identifier