Thanks for the example code. Definately provided a few different ways of doing the construction.
Actually, the status variable was the only thing that mattered for the inner function. The first code post had a bug b/c I was first just trying to use reduce. However, I realized that the boolean reducer ended up using the boolean result instead of the next field for subsequent operations. The effect I was going for was was a logical AND of all the returned values from reducer. However the inner function is supposed to use the same type algorithm as the built-in reduce function. reducer does have no side effects so I suppose short-circuting it would be the best thing. I think the only thing about the last example is that it starts things off with a zero. I think that would boink it. The way that this thing works is it's a general algorithm for boolean operations that are applied to fields in a dict. def lt(*fields): return collect(fields, lambda x, y: x < y) data = { 'birth_date' : 19740201, 'hire_date' : 19840721, 'fire_date' : 19850123 } rule = lt('birth_date', 'hire_date') assert rule(data) == True -- http://mail.python.org/mailman/listinfo/python-list