at1636 发表于 2022-10-20 15:12:43

标记收藏,谢谢大佬无私分享

baitang36 发表于 2022-10-21 07:56:34

本帖最后由 baitang36 于 2022-10-21 07:59 编辑

"要说明的是,对于赋值为整数类型,lisp视作为立即数,即使你用内部方式改变了某个值,复制的符号的值并不会发生改变。
也就是说(setq a 3) ,(setq b a) 当你即使用内部方法修改a的数值,b的数值依然不变。"
对于小整数,数值小于1G,高大侠的说法是正确的,但对于大整数,数值大于1G,它也会变成引用。
小整数在内存中直接存储2n+1,它是直接存放在符号的值中的,比如(setq a 1),1这个数值变成3放到符号a的value中。


lsp使用引用带来的好处也是有的,比较两个字符串是否相等,只需要看是不是指向了同一个字符串,而不需要逐个字节去对比,速度飞快。

ivde 发表于 2022-10-21 11:07:43

本帖最后由 ivde 于 2022-10-21 11:08 编辑

baitang36 发表于 2022-9-11 16:32
lisp有点歧视汉字,用保留函数计算hash值时,并未把汉字计算在内。因此你改了汉字并不会影响hash值。
autolisp 是 ANSI,不是UNICODE
vl-string->list
vl-list->string

kevinying16 发表于 2022-11-15 12:29:34

大神威武,感谢分享

ZYX2129 发表于 2022-12-4 16:21:50

谢谢大佬的分享!!!!

xiongkun 发表于 2022-12-4 16:53:44

学习了 感谢大佬分享

happyxt 发表于 2022-12-13 23:26:31

全是干货,收获很大,感谢大佬解惑。果断收藏防雷。

xyp1964 发表于 2023-3-28 08:35:57


;; (IntSort '(2 6 2 4 5 7 5)) → (2 2 4 5 5 6 7)
(defun IntSort(lst)(mapcar'(lambda(x)(nth x lst))(vl-sort-i lst'<)))

yu960312 发表于 2023-4-9 07:04:06

感谢大佬,又学到了一招

帝都划水王 发表于 2023-5-5 09:19:43

研究的真是深入啊。小白先看看
页: 1 2 3 [4] 5
查看完整版本: LISP陷阱与缺陷