相关疑难解决方法(0)

什么时候在Lisp中使用'(或引用)?

在通过介绍性的Lisp书的主要部分之后,我仍然无法理解特殊运算符(quote)(或等效的')函数的作用,但这已经是我见过的所有Lisp代码.

它有什么作用?

lisp quote

106
推荐指数
5
解决办法
3万
查看次数

什么是'(撇号)在球拍?

'对球拍中的标志的含义有点困惑.在我看来,同一个标志有不同的含义.请看下面的两个简单示例:

list

返回包含vs作为其元素的新分配列表.

> (list 1 2 3 4)
'(1 2 3 4)
Run Code Online (Sandbox Code Playgroud)

quote

生成对应于数据的常量值(即,程序片段的表示),而不包含其词汇信息,源位置等.引用的对,向量和框是不可变的.

> '(1 2 3 4)
'(1 2 3 4)
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:'符号是否有2个含义(符号列表)或这些是相同的数据类型并list实际返回引用的常量值?如果第二种情况是这样的话:

> '(+ (- 2 13) 11)
'(+ (- 2 13) 11)

> (eval (list + (- 2 13) 11))
0
Run Code Online (Sandbox Code Playgroud)

(也(eval '(+ (- 2 13) 11)) 正常工作和评估0)

但这不是:

> (list + (- 2 13) 11)
'(#<procedure:+> -11 11) …
Run Code Online (Sandbox Code Playgroud)

scheme functional-programming racket

2
推荐指数
1
解决办法
1278
查看次数

标签 统计

functional-programming ×1

lisp ×1

quote ×1

racket ×1

scheme ×1