【发布时间】:2011-05-31 17:32:05
【问题描述】:
我对宏非常感兴趣,并且刚刚开始了解它的真正力量。请帮我收集一些宏系统的伟大用法。
到目前为止,我有这些构造:
模式匹配:
安德鲁·赖特和布鲁斯·杜巴。图案 匹配方案,1995
Prolog 精神中的关系:
多莱西塔拉姆。在 schelog 中编程。 http://www.ccs.neu.edu/home/dorai/schelog/schelog.html
丹尼尔·P·弗里德曼、威廉·E·伯德、 和奥列格·基谢廖夫。理性的 计划者。麻省理工学院出版社,2005 年 7 月
马蒂亚斯·费莱森。音译 Prolog 进入 Scheme。技术报告 182,印第安纳大学,1985 年。
可扩展循环结构:
塞巴斯蒂安·埃格纳。急切的理解 方案:SRFI-42的设计。在 方案和功能研讨会 编程,第 13-26 页,9 月 2005.
奥林颤抖着。循环的解剖:a 范围和控制的故事。在 国际功能会议 编程,第 2-14 页,2005 年。
班级系统:
PLT。 PLT MzLib:库手册。 技术报告PLT-TR2006-4-v352, PLT 计划公司,2006 年。 http://www.plt-scheme.org/techreports/
伊莱·巴兹莱。骗取。 http://www.barzilay.org/Swindle.
组件系统:
瑞恩·卡尔佩珀、斯科特·欧文斯和 马修·弗拉特。句法抽象 在组件接口中。在 国际生成会议 编程和组件工程, 第 373–388 页,2005 年
软件合同检查
马修·弗拉特和马蒂亚斯·费莱森。 单元:HOT 语言的酷模块 在 ACM SIGPLAN 会议上 编程语言设计和 实施,第 236-248 页,1998 年
Oscar Waddell 和 R. Kent Dybvig。 扩展句法范围 抽象。在原则研讨会上 编程语言,页面 203–215, 199
解析器生成器
斯科特·欧文斯、马修·弗拉特、奥林 颤抖和本杰明麦克马伦。词法分析器 和 Scheme 中的解析器生成器。在 方案和功能研讨会 编程,第 41-52 页,9 月 2004.
工程语义工具:
马蒂亚斯·费莱森,罗伯特·布鲁斯 芬德勒和马修·弗拉特。语义 使用 PLT Redex 进行工程设计。麻省理工学院出版社, 2009 年 8 月。
编译器转换规范:
Dipanwita Sarkar、Oscar Waddell 和 R. Kent Dybvig。纳米通道 编译器教育框架。 功能杂志 编程,15(5):653–667,九月 2005. 教育明珠。
新颖的执行方式
可序列化的 Servlet 继续 Greg Pettyjohn, John 克莱门茨、乔·马歇尔、施莱拉姆 克里希那穆提和马提亚斯费莱森。 广义堆栈的延续 检查。在国际 函数式编程会议, 第 216-227 页,2005 年。
定理证明系统
塞巴斯蒂安·埃格纳。 Scheme中的急切理解:设计 SRFI-42。 在方案和函数式编程研讨会中,第 13-26 页, 2005 年 9 月。
带有类型的基础语言扩展
Sam Tobin-Hochstadt 和 Matthias Felleisen.The 设计和 类型化方案的实现。在 编程原理研讨会 语言,第 395–406 页,2008 年。
懒惰
伊莱·巴兹莱和约翰·克莱门茨。 不劳而获的懒惰 工作:懒惰与严格相结合 教学语言。在功能 和声明式编程 教育,第 9-13 页,2005 年。
功能反应性
Gregory H. Cooper 和 Shriram 克里希那穆提。嵌入动态 值调用语言中的数据流。 在欧洲编程研讨会上, 2006
参考:
【问题讨论】:
-
+1 好问题。我认为在 cstheory.SE 上询问或将其迁移到那里会很有用,因为看起来类似的问题,例如 What's new in purely functional data structures since Okasaki?,那里有更多的视图。
-
我把它贴在那里。但我得到了反对意见。
-
@Yasir 和 kujaan,这不是一个研究级别的问题,所以不属于 cstheory,它可能属于程序员
-
如果你想要 usage 例子,也不是特别理论
-
顺便说一句,为什么是“卫生”标签?列出的示例中至少有一半是常见的 lisp 样式的宏。
标签: macros lisp scheme racket hygiene