【发布时间】:2018-09-13 15:38:32
【问题描述】:
我正在尝试编写与此 CL 代码等效的 Scheme:
(defmacro alias (new-name prev-name)
`(defmacro ,new-name (&rest args)
`(,',prev-name ,@args)))
;; Sample use:
(alias co concatenate)
我的目标是能够使用符号和函数名称的简写名称,例如:
(alias sa string-append)
(sa "ok" "not ok")
为此,我已经尝试过,但没有成功:
(define-syntax alias (new-name prev-name)
`(define-syntax ,new-name (#!rest args)
`(,',prev-name ,@args)))
感谢任何帮助。谢谢。
【问题讨论】:
-
嗯,Common Lisp 等价物是使用符号宏(参见
define-symbol-macro和symbol-macrolet)。 -
您将如何使用这些宏之一编写别名功能?
-
抱歉,没看错。
标签: scheme common-lisp