aga*_*gam 3 syntax scheme racket
我正在经历htdp并在一开始就找到了这个: -
解释为什么以下句子是非法定义:1.(define(f'x)x)
但是,它在球拍中工作正常:
> (define (f 'x) x)
> (f 'a)
3
> (define a 5)
> (f a)
3
Run Code Online (Sandbox Code Playgroud)
显然,我错过了什么......到底是什么?
Joh*_*nts 12
简短回答:你不应该使用完整的"#lang racket"语言.教学语言消除了您遇到的语言可能令人困惑的高级功能.
在这种情况下,您的定义被解释为一个名为f的函数,带有一个名为quote的可选参数,其默认值由'x'提供.
将语言级别设置为Beginning Student,您将获得更合理的答案.