flowerson 发表于 2022-8-3 18:27:58

baitang36 发表于 2022-8-2 07:44
有一种语言叫汇编,它的指令和机器码是对应的。
任何语言最终到cpu那里执行的都是机器码,可以用汇编去 ...

求baitang36 老师 教教。看什么资料看什么书?

highflybird 发表于 2022-8-3 23:38:37

陆续在一楼补充新发现的一些隐藏函数。

baitang36 发表于 2022-8-4 07:38:43

flowerson 发表于 2022-8-3 18:27
求baitang36 老师 教教。看什么资料看什么书?

先看看od和x64db这些调试工具

baitang36 发表于 2022-8-4 07:47:15

ymd->fix 和fix->ymd不精确,输入个非法日期也能算。用来算间隔天数还是可以的。

langke52 发表于 2022-8-8 21:05:02

谢谢楼主分享:handshake:handshake

llsheng_73 发表于 2022-8-9 13:45:16

本帖最后由 llsheng_73 于 2022-8-9 13:47 编辑

菜卷鱼 发表于 2022-7-26 14:53
我贡献最小,跟真大神相提并论有点惭愧

adjoin;;;(adjoin item list) == (if (member item list) list ...
(setq l1'(1 2)l2'(3 4))
(rplacd '(1 2)l2)=>'(1 3 4)
(rplacd l1 l2)完蛋了。。。。它会进入死循环,最后CAD崩掉。。。当然也可以在中途狂按ESC让它结束,会看到l1的值(1(1(1(1....(1 3 4)...))))
(rplacd (eval 'l1)l2)不会出现死循环的问题,并且把结果也给了l1(1 3 4)
这两点特别奇怪
(rplaca l1 l2)=>((3 4)2);;;等同于(setq l1(cons l2(cdr l1))),即把结果放回了第一个变量
(revappend l1 l2)=>(2 1 3 4)和(append(reverse l1)l2)完全相同,都不会修改l1或l2
(nreconc l1 l2)=>(2 1 3 4),但它同时把l1改为了(1 3 4)即(setq l1(cons(car l1)l2))修改了第一个变量但并不是这个函数的直接结果

llsheng_73 发表于 2022-8-9 14:56:14

本帖最后由 llsheng_73 于 2022-8-9 15:05 编辑

(setq a "hello,world!")
(setq b a)用setq复制。
(setq c (copy-string a))
一开始它们是一样的,
但是如果你用内部函数修改了a的字符串值,
譬如(string-fill a (ascii "a"))
"aaaaaaaaaaaa"
_$ a
"aaaaaaaaaaaa"
_$ b
"aaaaaaaaaaaa"

激活string-fill后是对的。。。如果用setq去改变a,那么b是不会变化的,看样子它和一些别的内部函数一样,隐藏了一些副作用,或者说有副产品

caddog 发表于 2022-8-14 10:40:42

用LISP这么多年了,今天又涨了知识{:1_1:}经常听说AutoLisp是Lisp的子集,是不是可以说对于Lisp其实还学得不全面呢。上网找了一下,发现这本书,居然是MT的教材!

caddog 发表于 2022-8-14 10:44:07

本帖最后由 caddog 于 2022-8-14 10:45 编辑

咦,我发的附件怎么看不见呢?
书名叫《计算机程序的构造和解释》
C:\20220814104325.png

xyz002 发表于 2022-8-23 17:09:11

感谢版主和各位大佬们的奉献!
页: 1 2 [3] 4
查看完整版本: Make Lisp Great Again--利用隐藏函数恢复isp的活力!