自贡黄明儒
发表于 2024-9-2 15:30:34
lisp所有语句,都有输入(这个可以没有)、过程、输出。输出或者叫返回值吧,只有(princ)特殊,没有返回值,记住就可以了。
moranyuyan
发表于 2024-9-2 22:07:01
muwind 发表于 2024-9-1 21:44
我们使用(princ xx)就是为了打印或者说将XX显示在屏幕上,
不仅princ,基本上任何函数包括自定义函数都 ...
嗯,讲得好,但是我还是没明白我截图中的代码末尾为什么要加(princ)。
moranyuyan
发表于 2024-9-2 22:08:07
自贡黄明儒 发表于 2024-9-2 15:30
lisp所有语句,都有输入(这个可以没有)、过程、输出。输出或者叫返回值吧,只有(princ)特殊,没有返回值, ...
我还是没明白我截图中的代码末尾为什么要加(princ)。
muwind
发表于 2024-9-2 23:28:03
自贡黄明儒 发表于 2024-9-2 15:30
lisp所有语句,都有输入(这个可以没有)、过程、输出。输出或者叫返回值吧,只有(princ)特殊,没有返回值, ...
有些函数可以没有输入 ,但有输出
比如 + 之类的运算符如果什么都没有 返回的就是0,
逻辑运算符最好玩
(and)返回T
(or)返回nil
:lol
tryhi
发表于 2024-9-3 10:11:58
moranyuyan 发表于 2024-9-2 22:08
我还是没明白我截图中的代码末尾为什么要加(princ)。
你不加试一下不就知道为什么了
tryhi
发表于 2024-9-3 10:14:57
本帖最后由 tryhi 于 2024-9-3 10:28 编辑
自贡黄明儒 发表于 2024-9-2 15:30
lisp所有语句,都有输入(这个可以没有)、过程、输出。输出或者叫返回值吧,只有(princ)特殊,没有返回值, ...
(princ)也是有返回值的,返回值是一个符号,这个符号是空字符串
(vl-symbol-name (princ));此句可以看出princ返回值是一个符号
甚至我们可以用保留函数自己定义一个跟princ一样不打印并且看起来似乎无返回的函数
;;定义一个跟princ一样"无返回值"的函数
(defun notprinc (/ b)
(setq b a)
(string-elt<- "a" 0 0)
b
)
(notprinc)
饼仲郎
发表于 2024-9-3 10:25:52
你写个代码跑一下不就知道区别了,谜底就在谜面上。
moranyuyan
发表于 2024-9-3 11:09:06
tryhi 发表于 2024-9-3 10:11
你不加试一下不就知道为什么了
我试了,加和不加在命令行看不出区别,最后都显示为:【填充拉伸】己加载,命令:ss
所有我就纳闷加(princ)的作用时啥。
moranyuyan
发表于 2024-9-3 11:10:08
饼仲郎 发表于 2024-9-3 10:25
你写个代码跑一下不就知道区别了,谜底就在谜面上。
我试了,加和不加在命令行看不出区别。
tryhi
发表于 2024-9-3 11:25:39
moranyuyan 发表于 2024-9-3 11:09
我试了,加和不加在命令行看不出区别,最后都显示为:【填充拉伸】己加载,命令:ss
所有我就纳闷加(pri ...
那就不是在最后,或者不是最后加载,或者你看漏了,最后的话会显示两句重复一样的提示