python, pt.06에서 처음부터 간단한 인터프리터를 빌드할 수 있습니다. While 루프

이 포스트에서 우리는 'while' 루프를 구현하고 있습니다:

class Interpreter:

    # ....(previous code)....

    def While(self,xs):
        _ , cond , block = xs
        while self.eval(cond):
            if isinstance(block[0],list):
                for x in block:
                    self.eval(x)
            else:
                self.eval(block)

code=[

    ["Set","sum",0],

    ["Set","i",0],

    ["While", ["Lt", ["Get","i"], 100], [

        ["Set","i", ["Add",["Get","i"], 1] ],
        ["Set","sum", ["Add",["Get", "sum"],["Get","i"]]]
    ]],

    ["Print","sum(1..100) = ",["Get","sum"] ]
]

interpreter=Interpreter()

interpreter.run(code)


산출:

sum(1..100) = 5050


전체 코드 링크: part6
링크: Patreon

좋은 웹페이지 즐겨찾기