1
Могу ли я определить макрос, который получит один параметр слева и один из правой части макроса? Я хочу, чтобы написать какую-то это в моих программах:Scheme макросы с двумя параметрами
(test = 10)
определить новые переменные Я попытался написать этот макрос:
(define-syntax =
(syntax-rules()
((a _ b)
(define a b))))
Но я получил ошибку «плохой синтаксис: = "
Это, вероятно, частично зависит от того, какую реализацию схемы вы используете. Какая реализация схемы вы используете? –
Кроме того, слово для этого является «infix», как в: «Я хочу определить оператор инфикса как макрос». Таким образом, у вас может быть больше удачи. –
Даже с помощью макросов оператор приходит первым. В макросе '=' должен быть первый элемент, поэтому вы не можете сделать lisp infix и странным, как Algol, как это – Sylwester