Вот решил я изучить Common Lisp путём написания небольших прог,
и взялся за написание интерпретатора бейсика.
По ходу написания заметил в функции, разбирающей строку на оператор
и параметры, закономерность:
(cond
((integerp operator) (setf (gethash operator *program*) argument))
((eql operator 'rem) (basic-rem argument))
((eql operator 'let) (basic-let argument))
((eql operator 'list) (basic-list argument))
((eql operator 'run) (basic-run argument))
((eql operator 'quit) (basic-quit argument))
(t (syntax-error "Не знаю такого оператора")))
чем дальше я буду писать, тем больше будет становится этот кусок.
можно ли заменить этот кусок макросом? и как тогда из параметра
сделать функцию "basic-параметр"?
>>>