2011-03-31 63 views
1

我需要通過在全局環境中添加原始過程< =來擴展Charme解釋器(描述here)。我知道要做到這一點,我還需要定義一個實現原語的過程,並修改initializeGlobalEnvironment以安裝原語。擴展Charme解釋器

這就是我對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) 

回答

0

我不知道有關迷人確切的語法,但大致方案-Y代碼將

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