扩展魅力解释器 [英] Extending the Charme Interpreter

查看:66
本文介绍了扩展魅力解释器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要扩展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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆