一个关于Racket的quote的题目(附解答)
题目:
定义
(define x 'a)
通过对x的适当运算,得到”a。
题目分析:
根据《Racket指南》(2.4.2 使用’缩写quote)的内容:
一个’以字面相当的方式扩展成一个quote表。你够明白如果你在一个有一个’的表前面放置一个’的这种情况:
(car ”road)
‘quote
(car ‘(quote road))
‘quote
那么‘’a根据字面意义可以理解为(quote ‘a),实际上是一个列表。即:
(list (quote quote) ‘a)
我们对上面表达式求值,即可得到需要的答案。
解题答案:
题解一:
(define x ‘a)
(list (quote quote) x)题解二:
(define x ‘a)
(cons (quote quote) (cons x empty))以下是其它答案(群友给出的):
`’,x
(list ‘quote x)
(car ‘(‘a))