Pythonからの単純なインタプリタを構築します.04 :比較関数
5070 ワード
インタプリタに比較関数を追加しました.
class Interpreter:
# .... previous code ....
def Lt(self,xs):
return self.eval(xs[1]) < self.eval(xs[2])
def Gt(self,xs):
return self.eval(xs[1]) > self.eval(xs[2])
def Lte(self,xs):
return not self.Gt(xs)
def Gte(self,xs):
return not self.Lt(xs)
def Eq(self,xs):
return self.eval(xs[1]) == self.eval(xs[2])
def NotEq(self,xs):
return not self.Eq(xs)
code=[
["If",["Lte",3,5],
["Print","3 <= 5"],
["Print","3 > 5"]
],
["If",["NotEq",3,5],
["Print","3 != 5"],
["Print","3 == 5"]
]
]
interpreter=Interpreter()
interpreter.run(code)
出力:3 <= 5
3 != 5
リンク242479152Reference
この問題について(Pythonからの単純なインタプリタを構築します.04 :比較関数), 我々は、より多くの情報をここで見つけました https://dev.to/smadev/lets-build-a-simple-interpreter-from-scratch-in-python-pt-04-comparison-functions-4pccテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol