Skip to content

Instantly share code, notes, and snippets.

@kra3
Created November 10, 2013 13:54
Show Gist options
  • Save kra3/7398564 to your computer and use it in GitHub Desktop.
Save kra3/7398564 to your computer and use it in GitHub Desktop.
Prefix expressions [ * + 2 3 4 ]
import itertools
def do_calc(expr):
stack = []
for t in expr:
if t == '+': stack[-2:] = [stack[-1] + stack[-2]]
elif t == '*': stack[-2:] = [stack[-1] * stack[-2]]
elif t == '/': stack[-2:] = [stack[-1] / stack[-2]]
else: stack.append(t)
return stack[0]
if __name__ == "__main__":
import sys
file = open(sys.argv[1], 'r')
for j in file.read().split('\n'):
if j:
print do_calc(reversed([i if i in '*/+' else int(i) for i in j.split(' ')]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment