宋为
2016-07-22 03:30:42 UTC
如题,觉得symbol这个数据类型比较神奇,不知道应该如何正确地实现它。
做过一个小Lisp,是通过一个映射表,把每个符号的字符串对应到一个整数上,编译字节码的时候遇到符号就来查这个表。
但是这样做带来一个问题:
我注意到很多Common
Lisp都支持把源文件编译成fasl。若是在多个文件中都共用一些符号,比如A、B、C这种,以我的方法,直接导出编译好的字节码后就不能确保能够保证每个文件中符号的代号一致,文件甲中编译的符号A的代号可能是42,到了文件乙中,可能就是24了。
各种Lisp实现是如何处理这个问题的?
做过一个小Lisp,是通过一个映射表,把每个符号的字符串对应到一个整数上,编译字节码的时候遇到符号就来查这个表。
但是这样做带来一个问题:
我注意到很多Common
Lisp都支持把源文件编译成fasl。若是在多个文件中都共用一些符号,比如A、B、C这种,以我的方法,直接导出编译好的字节码后就不能确保能够保证每个文件中符号的代号一致,文件甲中编译的符号A的代号可能是42,到了文件乙中,可能就是24了。
各种Lisp实现是如何处理这个问题的?
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn
---
您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到lisp-cn+***@googlegroups.com。
要查看更多选项,请
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn
---
您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到lisp-cn+***@googlegroups.com。
要查看更多选项,请