(define-syntax prnt
(syntax-rules ()
[(prnt elem ...) (display (format "~a" elem ...))]
))
以上代码在球拍中运行会发出以下错误:
格式:格式字符串需要1个参数,给定3;争论是: “~a”“1”2 3
然后我怎样才能实现使用(prnt“1”2 3),它可以打印任何关于prnt的东西?
答案 0 :(得分:2)
如果你真的想要一个宏:
(define-syntax prnt
(syntax-rules ()
[(prnt elem ...)
(begin (displayln elem) ...)]))
如果您只想通过单个函数调用显示多个对象,则不需要宏:
(define (prnt . args)
(for-each displayln args))