On Fri, 14 Nov 2008 01:24:32 +0100, M.-A. Lemburg wrote: >> Apparently you haven't seen >> any Forth, assembly, et al code. All you're doing is having the branch >> point for each conditional be the end of the chain, otherwise it falls >> through to the code after the conditional. This is done all the time >> in languages that let you actually manipulate the hardware. >> >> Just as a suggestion a little humility would go a long way toward >> being open minded and receptive to different paradigms. > > Without giving any hint as to what the quoted snippet of code is written > in, how do you expect people to make any sense of it ? Especially when > using an RPN stack oriented language in a Python forum. > > There's a reason why we hide Python byte code running on the VM stack > machine from Python users ;-)
It's not like Forth is precisely an obscure little language. For a time, it was possibly more popular than C. Or predated C? Whatever. I know I learned about Forth long before I had even heard of C. Other RPN languages include Postscript, not exactly unheard of either. Open Firmware is Forth-like, and as you point out yourself, Python byte code also is a stack-based language. In conclusion, I'm not sure which is more disappointing: that the OP couldn't be bothered to mention he was using a Forth-like syntax, or that so many people failed to recognize it. Anyway, for what it's worth, here's my translation into Python. if x1 < limit: a() if x2 < limit: b() if x3 < limit: c() # blah blah blah... if x10 < limt: j() Not very nice code. I think a better way is something like this: keys = [x1, x2, x3, x4, x5, x6, x7, x8, x9, x10] functions = [a, b, c, d, e, f, g, h, i, j] for key, function in zip(keys, functions): if key < limit: function() else: break -- Steven -- http://mail.python.org/mailman/listinfo/python-list