我定义了一个非常简单的函数“imap”。它接收两个参数并显示第一个参数。但是看看发生了什么奇怪的事情:
定义都是一样的。我只是改变了参数的名称! 为什么有些表格不起作用?
实施: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
>
答案 0 :(得分:3)
这是一个错字!你写了dislay
,而不是正确的display
。错误消息明确说明:
dislay: undefined;
cannot reference undefined identifier