1
我定義了一個非常非常簡單的函數「imap」。它接收兩個參數並顯示第一個參數。但看到奇怪的事情發生了什麼:DrRacket有什麼問題,不能引用未定義的標識符
的定義都是一樣的東西。我只是改變參數的名字! 爲什麼有些表單不起作用?
實現:這裏R5RS
的drRacket是源代碼。在
> (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) (display x))
> (imap 3 4)
3
> (imap + (list 1 2 3))
#<procedure:+>
現在,只是改變 「X」 到 「f」, 「Y」,以 「X」
繼續,並回到第一個定義相同:
> (define (imap x y) (dislay x))
> (imap + (list 1 2 3))
. . dislay: undefined;
cannot reference undefined identifier
>
對不起,謝謝.....我想我真的是一個傻瓜。 – tcpiper
@Pythoner不用擔心,你不是個傻瓜,你只是很累。也許現在是休息一下的好時機;) –
@ÓscarLópez睡眠只是咖啡的一個可憐的替代品;) – WorBlux