明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 559|回复: 2

[基础] lisp中的自解析符号

  [复制链接]
发表于 2024-11-28 11:02:30 | 显示全部楼层 |阅读模式
本帖最后由 vitalgg 于 2024-11-28 11:03 编辑

在commonlisp 中,对符号进行求值,其值就是符号本身,这种符号称为自解析符号。

常用的如 t nil :vlax-true :vlax-false 以及其它的以 : 开头的符号。

autolisp 是 commonlisp的子集

autolisp 中定义的基本符号,如 :vlax-true  :vlax-false :vlax-null 以及:vlr-* 系列函数,均为自解析符号,在编程时不能用数值代替。

在visuallisp中,当dump 一个对象时,:vlax-true 可能会显示 为 -1。但是在lisp代码中,不能用-1代替 :vlax-true 。这与autolisp中定义的以 ac开头的常量值不同。需注意区分。

在用户环境中,我们自己定义的以:开头的符号不遵守这个约定。

如下图定义的符号 :abc 与一般符号没有区别。其值不是自身,而是我们给定的值。



在公众号中回复 ‘术语’ ,了解更多 lisp 概念。





原文: https://mp.weixin.qq.com/s/VzLhTOx4uPb4NOgzi6UqWg

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

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

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
回复

使用道具 举报

 楼主| 发表于 2024-11-28 11:15:25 | 显示全部楼层
本帖最后由 vitalgg 于 2024-11-28 11:19 编辑

为什么是 -1 ?
因为在内存中保存 True 在内存中字节位中全是1。
结合 上次发文  内容 autolisp位运算:
0B11111111111111111111111111111111 = 0xFFFFFFFF , 这个表现为整数(有符号整数)就是 -1 。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-2-23 02:12 , Processed in 0.245566 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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