题
我想从书“的小策士”在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))
没有“列表”的一部分它试图执行“一个,显然
不隶属于 StackOverflow