求一个lisp宏实现
最近一段时间在看lisp的宏,不知道该怎么样写这样的宏,
功能上就是类似于with-open-file,让我可以这么使用
(with-greate (greater 3 4)
(list greater))
谢谢各位,麻烦帮忙实现一下。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
最近一段时间在看lisp的宏,不知道该怎么样写这样的宏,
功能上就是类似于with-open-file,让我可以这么使用
(with-greate (greater 3 4)
(list greater))
谢谢各位,麻烦帮忙实现一下。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
我想这应该是答案吧。不知道谁能指出其中不合理的地方不?谢谢
(defmacro greater (x y)
`((lambda (x y) (if (< x y) y x)) ,x ,y))
(defmacro with-greate (args &rest body)
`(let ((,(first args) (greater ,(second args) ,(third args))))
(progn ,@body)))
(with-greate (in 2 1) (+ in 4))