Расширение интерпретатора Charme
Мне нужно расширить интерпретатор Charme (описанный здесь), добавив примитивную процедуру <= в глобальную среду. Я знаю, что для этого мне также нужно определить процедуру, которая реализует примитив, и изменить initializeGlobalEnvironment
установить примитив.
Это то, что я имею для initializeGlobalEnvironment
-
def initializeGlobalEnvironment():
global globalEnvironment
globalEnvironment = Environment(None)
globalEnvironment.addVariable('true', True)
globalEnvironment.addVariable('false', False)
globalEnvironment.addVariable('+', primitivePlus)
globalEnvironment.addVariable('-', primitiveMinus)
globalEnvironment.addVariable('*', primitiveTimes)
globalEnvironment.addVariable('=', primitiveEquals)
globalEnvironment.addVariable('zero?', primitiveZero)
globalEnvironment.addVariable('>', primitiveGreater)
globalEnvironment.addVariable('<', primitiveLessThan)
1 ответ
Я не уверен насчет точного синтаксиса для charme, но примерный код схемы у
primitiveLessThanEqualTo = '(lambda (x y) (if (= x y) (true) (if (< x y) (true) (false))))'
globalEnvironment.addVariable('<=', primitiveLessThanEqualTo)