


















这是一个创建于 4110 天前的主题,其中的信息可能已经有所发展或是发生改变。
其实在本站搜索可以找到已经有人写过了(顺便里面提到的lispy非常值得参考),这个的功能绝对没有希望……不过这个应该有一些特别的地方:
现在的状况是可以运行练习2.42(八皇后谜题的那个)的代码,但是参数设成5就会突破Py递归深度上限。除法和浮点数都不能用!
这个项目应该可以完成第四章的使命,等做到4.1.7节分离语法分析与求值过程之后顺便加一下尾递归优化应该可以把上面的问题解决……
第 1 条附言 · 2015 年 3 月 16 日
4.1.7节的优化已经弄好了。令人感动的是原来能解(queen-louis 5),现在只能解4了。虽然速度是快了很多,果然eval本身还要改成迭代
第 2 条附言 · 2015 年 3 月 21 日
第 3 条附言 · 2015 年 3 月 24 日
加上了两个对于玩具来说比较强大的功能:
尾递归优化(只消除尾递归,而不是所有tail-call)
递归无上限,直到用完内存
假冒的traceback
不科学的性能比较:
八皇后习题中queens过程,用时是Racket的100倍
递归定义的阶乘过程,用时是Racket的2倍(真不科学)
第 4 条附言 · 2015 年 7 月 2 日
应该是最后一次更新了:
加入call/cc
去掉了假冒的traceback,并优化所有tail-call
继续补充基本过程
结果是可以运行原来书上的那个元循环解释器了。对于call/cc至少维基百科页面里的generator例子是可以运行的。
最后是令人悲伤的性能:
对于(queen 8),Racket用了0.6秒。TSI在加上PyPy魔法之后用的时间居然是前者的30倍
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。