Расширение Charme Interpreter - PullRequest
1 голос
/ 31 марта 2011

Мне нужно расширить интерпретатор Charme (описан здесь ), добавив примитивную процедуру <= в глобальную среду.Я знаю, что для этого мне также нужно определить процедуру, которая реализует примитив, и изменить <code>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 Ответ

0 голосов
/ 31 марта 2011

Я не уверен насчет точного синтаксиса для charme, но примерный код схемы-y будет

primitiveLessThanEqualTo = '(lambda (x y) (if (= x y) (true) (if (< x y) (true) (false))))'
globalEnvironment.addVariable('<=', primitiveLessThanEqualTo)
...