Ron_Adam wrote: > I sort of wonder if this is one of those things that looks like it > could be useful at first, but it turns out that using functions and > class's in the proper way, is also the best way. (?)
I think Your block is more low level. It is like copying and pasting code-fragments together but in reversed direction: if You copy and paste a code fragment and wants to change the behaviour You probable have to change the fragment the same way in every place of occurence. This is a well known anti-pattern in software construction. If You change Your thunk somehow e.g. from def yield_thunk: yield i to def yield_thunk: yield j You have to change all the environments that use the thunk e.g. renaming variables. It is the opposite direction of creating abstractions i.e. a method to deabstract functions: introduce less modularity and more direct dependencies. This is the reason why those macros are harmfull and should be abandoned from high level languages ( using them in C is reasonable because code expansion can be time efficient and it is also a way to deal with parametric polymorphism but Python won't benefit from either of this issues ). Ciao, Kay -- http://mail.python.org/mailman/listinfo/python-list