我想从书“的小策士”在Macintosh上使用DrScheme学习计划。它之类的东西启动“什么是L的轿厢其中l是所述参数(A B C)?”

据我所知,这个问题的答案是A,但我不能够真正弄清楚如何键入计划博士为“跟着”。关于如何分配给升如>一个简单的想法(DEF升( 'A' B“C))

给我的错误: “函数调用:预期定义的名称或一个开括号之后的原始操作的名称,但发现别的东西”

有帮助吗?

解决方案

要定义的东西:

(define <name> <value>)

因此,以限定升:

(define l '(a b c))

l定义作为列表(a b c)。单引号引用不管是以后呢,它是否是一个符号或一个列表,这意味着它没有评价,但读原样。您的的,但是,引用的是你将它设置为名称。值得庆幸的是,这是极少数的计划,你有这种不一致的操作之一。

其他提示

尝试这种情况:

(define l '(a b c))

下面,报价适用于整个列表(a b c)

或者,只是使用

(car '(a b c))

什么错误是告诉你是这样的:当读者看到一个列表,它要到列表中的第一个元素当作一个函数。这是(+ 1 2 3)是如何工作的:它会调用HTHE功能+。 (严格地说,它看起来在符号'+并发现有绑定到该功能,然后调用该函数。)

因此,当键入

(define l ('a 'b 'c))

它看起来在内部列表,然后想找到一个功能。相反,它发现S上的符号命名a。由于没有一个函数在那里,你的错误。相反,如果你输入

(define l '(a b c))

您已经告诉通过报价的读者,它的治疗,由于没有试图解释它的列表。

下面是从MIT方案Mac上的示例:

1 ]=> (define li '(a b c))

;Value: li

1 ]=> (car li)

;Value: a

1 ]=> (car '(a b c ))

;Value: a

的非abbraveted形式

(define l '(a b c))  

(define l (quote (a b c)))  

或在这种情况下,甚至这样的:

(define l (list 'a 'b 'c))  

没有“列表”的一部分它试图执行“一个,显然

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top