Lisp可以在Lisp中实现这种糖语法吗?

时间:2019-01-15 00:12:55

标签: lisp common-lisp syntactic-sugar

是否可以在Lisp中实现以下语法?

#1 + 1 &
=>
(+ #1 1)

#1 + #2 &
=>
(+ #1 #2)

“#+(number)”表示函数的第n个参数。 “&”表示功能结束。

1 个答案:

答案 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))))