может ли lisp реализовать такой синтаксис сахара в lisp? - PullRequest
0 голосов
/ 15 января 2019

Возможно ли реализовать следующий синтаксис в lisp?

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

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

«# + (число)» означает n-й аргумент для функции. «&» означает конец функции.

1 Ответ

0 голосов
/ 15 января 2019

Да. Он может быть реализован как макрос для чтения, но вы должны знать, что (lambda x: x + 1) и (lambda x, y: x + y) не имеют никакого смысла в lisp. Это выглядит как синтаксис Python с круглыми скобками.

Теперь макросы читателей - это то, что превращает '(3) в (quote (3)) и `` (a b ,(+ a b)) в (quasiquote (a b (unquote (+ a b))))

...