是否可以在Lisp中实现以下语法?
#1 + 1 &
=>
(+ #1 1)
#1 + #2 &
=>
(+ #1 #2)
“#+(number)”表示函数的第n个参数。 “&”表示功能结束。
答案 0 :(得分:3)
是的。它可以实现为阅读器宏,但是您应该知道(lambda x: x + 1)
和(lambda x, y: x + y)
毫无意义。看起来像带括号的python语法。
现在,阅读器宏可以将'(3)
变成(quote (3))
和``(a b ,(+ a b))
变成(quasiquote (a b (unquote (+ a b))))