扩展魅力解释器 [英] Extending the Charme Interpreter
本文介绍了扩展魅力解释器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要扩展Charme解释器(在此处),方法是将原始过程< =添加到全局环境中.我知道要执行此操作,我还需要定义一个实现原语的过程,并修改initializeGlobalEnvironment
以安装原语.
I need to extend the Charme interpreter (described here) by adding a primitive procedure <= to the global environment. I know that to do this I also need to define a procedure that implements the primitive, and modify initializeGlobalEnvironment
to install the primitive.
这就是我要的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)
推荐答案
我不确定魅惑的确切语法,但是近似的scheme-y代码将是
I am not sure about the exact syntax for charme, but the approximate scheme-y code would be
primitiveLessThanEqualTo = '(lambda (x y) (if (= x y) (true) (if (< x y) (true) (false))))'
globalEnvironment.addVariable('<=', primitiveLessThanEqualTo)
这篇关于扩展魅力解释器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文