List 语言:set和setq差别

在Lisp中,如果我们希望对一个变量赋值,可以使用set函数,用法如下:

(set ‘my-value "my string")

上面的代码是对变量my-value进行赋值,值是"my String"。注意其中的'my-value前面是有一个单引号的。

 

我们知道,在Lisp中,'my-value其实是(quote my-value)的简写,所以上面的set函数代码也可以写成这样:

(set (quote my-value) "my string")


不过,因为set函数使用的次数很多,每次都要使用quote或者在变量名前加一个单引号比较麻烦,于是发展了setq函数,setq中的q字母就是代表quote的意思,使用setq函数就可以这样写了:

(setq my-value "my string")

上面的代码也是对变量my-value进行赋值,值是"my String",是不是比set函数好用一点?

 

如果只是这样使用,可以认为set和setq是没有差别的,只是格式不同。

但是,事实上setq比set函数要高级一些,setq函数还可以同时对多个变量进行赋值,像下面这样:

(setq my-value1 "my string 1" my-value2 "my string 2")

上面的代码同时对变量my-value1和my-value2进行赋值。

 

而set函数就不能这样使用了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值