明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: moranyuyan

[提问] lisp代码最后都写一句”(princ)“,它的作用是什么?

[复制链接]
发表于 2024-9-2 15:30:34 | 显示全部楼层
lisp所有语句,都有输入(这个可以没有)、过程、输出。输出或者叫返回值吧,只有(princ)特殊,没有返回值,记住就可以了。
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-9-2 22:07:01 | 显示全部楼层
muwind 发表于 2024-9-1 21:44
我们使用(princ xx)就是为了打印或者说将XX显示在屏幕上,
不仅princ,基本上任何函数包括自定义函数都 ...

嗯,讲得好,但是我还是没明白我截图中的代码末尾为什么要加(princ)。
 楼主| 发表于 2024-9-2 22:08:07 | 显示全部楼层
自贡黄明儒 发表于 2024-9-2 15:30
lisp所有语句,都有输入(这个可以没有)、过程、输出。输出或者叫返回值吧,只有(princ)特殊,没有返回值, ...

我还是没明白我截图中的代码末尾为什么要加(princ)。
发表于 2024-9-2 23:28:03 | 显示全部楼层
自贡黄明儒 发表于 2024-9-2 15:30
lisp所有语句,都有输入(这个可以没有)、过程、输出。输出或者叫返回值吧,只有(princ)特殊,没有返回值, ...

有些函数可以没有输入 ,但有输出
比如 + 之类的运算符  如果什么都没有 返回的就是0,
逻辑运算符最好玩
(and)返回T
(or)  返回nil
发表于 2024-9-3 10:11:58 | 显示全部楼层
moranyuyan 发表于 2024-9-2 22:08
我还是没明白我截图中的代码末尾为什么要加(princ)。

你不加试一下不就知道为什么了
发表于 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)



评分

参与人数 1明经币 +1 收起 理由
自贡黄明儒 + 1 很给力!

查看全部评分

发表于 2024-9-3 10:25:52 | 显示全部楼层
你写个代码跑一下不就知道区别了,谜底就在谜面上。
 楼主| 发表于 2024-9-3 11:09:06 | 显示全部楼层
tryhi 发表于 2024-9-3 10:11
你不加试一下不就知道为什么了

我试了,加和不加在命令行看不出区别,最后都显示为:【填充拉伸】己加载,命令:ss
所有我就纳闷加(princ)的作用时啥。
 楼主| 发表于 2024-9-3 11:10:08 | 显示全部楼层
饼仲郎 发表于 2024-9-3 10:25
你写个代码跑一下不就知道区别了,谜底就在谜面上。

我试了,加和不加在命令行看不出区别。
发表于 2024-9-3 11:25:39 | 显示全部楼层
moranyuyan 发表于 2024-9-3 11:09
我试了,加和不加在命令行看不出区别,最后都显示为:【填充拉伸】己加载,命令:ss
所有我就纳闷加(pri ...

那就不是在最后,或者不是最后加载,或者你看漏了,最后的话会显示两句重复一样的提示
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-9 12:23 , Processed in 0.292427 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表