扩展Charme口译员

时间:2011-03-31 01:03:34

标签: python scheme interpreter

我需要通过向全局环境添加原始过程< =来扩展Charme解释器(描述here)。我知道要做到这一点,我还需要定义一个实现原语的过程,并修改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 :(得分:0)

我不确定charme的确切语法,但是近似的scheme-y代码将是

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