setq中双引号和单引号的区别是什么呢


#1

(setq my-name "Bastien")(setq my-name 'Bastien) 区别是什么呢? 前者运行结果“Bastien”带引号,后者结果Bastien 再运行 (insert "Hello,I am" my-name), 带双引号的结果Hello,I am Bastien;后者报错。 请问怎么理解呢?


#2

“aaa” 是一个字符串, 'aaa 是一个符号, 两个是不同的数据类型,你应该看看文档,这是最基础的一些概念


#3

好的,非常感谢,现在正在学习elisp


#4

lisp 中的变量和其他语言的变量有一点区别, lisp 中的变量就是一个空间,可以放置任何类型的东西, 不像其他语言, 变量有类型


#5

变量还是有类型的。准确地说是不需要显式申明类型,而是由解释器自动推测类型。

0基础学Elisp,建议在有自己的理解以后先看下面那个帖子里面提到的较短文章。

对理解一些必要的Lisp特有概念有所帮助。


#6

lisp 里面的变量似乎就是指针, 指到什么类型的数据, 变量就是什么类型。


#7

这两行结果一样 ’ 是 quote 的简写形式

(quote foo)
'foo

quote 的意思是不要执行后面的内容,返回它原本的内容


(print '(+ 1 1)) ;; -> (+ 1 1)
(print (+ 1 1))  ;; -> 2