我正在尝试将一些Common Lisp代码转换为Scheme代码。Common Lisp代码有一个deftype。方案中的deftype%s与Common Lisp中的deftype%s相同吗?如何将Common Lisp中的deftype转换为Scheme中的等效代码?
发布于 2009-08-08 00:42:01
正如Anton所说,没有与Common Lisp deftype等同的确切方案。有关在Common Lisp中类型说明符可以是什么的说明,请参阅CLHS:Type Specifiers。它们用于声明、数组类型规范、结构和CLOS槽规范、泛型函数参数专门化等等。将其移植到Scheme通常将是一个巨大的挑战。您最大的希望是,由deftype定义的类型只被简单地使用(或者根本不使用!)。
发布于 2009-08-07 19:29:12
通用的Lisp没有确切的deftype等价物。您必须手动转换类型定义,或者根据系统中可用的任何deftype记录库编写Scheme宏。
Bare Scheme根本没有用户定义的类型。在R5RS系统中,您必须查找相关的SRFIs (例如SRFI-9 (Record types)、SRFI-57 Records、SRFI-99 ERR5RS records),并查看您的特定方案系统实现了哪些SRFIs和语言扩展;方案系统通常在实现最小方案标准之外的任何内容时都不是非常一致。R6RS方案有记录in its standard library。
https://stackoverflow.com/questions/1246512
复制相似问题