[ create a new paste ] login | about

Link: http://codepad.org/yoZjvKGM    [ raw code | output | fork ]

Python, pasted on Sep 11:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class RPN:
    def emit(self, code):
        def _emit():
            def _num(o): 
                try: return int(o)
                except: return int(o, 16)
            stack = []
            for o in code.split():
                try:
                    o = _num(o)
                    stack.append(o)
                except:
                    b,a = stack.pop(), stack.pop()
                    stack.append(a+b if o in ("+", "add", "plus") else a-b if o in ("-", "sub", "minus") \
                                else a*b if o in ("*", "mul", "mult") else a/b if o in ("/", "div") \
                                else a%b if o in ("%", "mod", "rem") else None)
            return stack[0]
        return _emit

a = RPN()
print a.emit("3 10 mod")()


Output:
1
3


Create a new paste based on this one


Comments: