A little Python snippet, good for a diversion. I couldn’t fit it into a tweet though:
s=[];op=dict((o,eval('lambda a,b:b%sa'%o)) for o in '+-*/%')
while not any(s.append(op[w](s.pop(),s.pop())if w in op
else float(w)) for w in raw_input().split()):
print '=',s[-1]
Just a simple 4-function RPN calculator, accepting input from console:
1
= 1.0
2 2 +
= 4.0
1 2 -
= -1.0
2 3 * 1 +
= 7.0
2 3 1 * +
= 5.0