【发布时间】:2012-11-12 04:35:46
【问题描述】:
我一直在尝试为“包装”函数创建一个宏,即,如果我有一个函数可以获取一个列表并将符号 'a 用于第一个元素,它通常被定义为 lambda (l ) (cons 'al ),但我想要一个宏,它将采用一个函数和一个整数表达式对列表,并通过创建一个新函数来“包装”该函数,该函数采用旧函数的一些参数并基于其余部分在对上,使用整数作为位置,使用表达式作为值来给出函数。像这样的:
(wrap list (0 'blah) (2 'bloo) (4 'blee))
应该扩展为:
(lambda (a1 a2 . rest)
(apply list 'blah a1 'bloo a2 'blee rest))
问题是,我不知道如何让宏找到对中整数的值,它只知道它是一个语法对象。我对宏很陌生,这应该很简单,我只是在文档方面遇到了麻烦,除了关于宏的简单教程之外,我在网上找不到任何信息。任何帮助将不胜感激。
【问题讨论】: