(original) (raw)

>> Do you have commit access? What's your real name?
I prefer to remain pseudonymous, and I don't have commit access.

Yeah... they're not terribly useful - more or less there for the sake of being there. Batteries included and all that






...but now I've got a more useful idea for a function wrapper
around predicate functions to make them a little more functionally inclined. Something like.......



@predicate
def hasnext(x): return hasattr(x, "next")



@predicate

def hasiter(x): return hasattr(x, "__iter__")



isiterable   = hasnext or hasiter   #or/and/not operators construct new predicate functions



isEmptyIterable = isiterable and not predicate(bool)



isgenerator = isiterable and (lambda x: hasattr(x, "send") and hasattr(x, "throw"))



filter(isgenerator or callable, SomeSequence)


--
"What's money? A man is a success if he gets up in the morning and goes to bed at night and in between does what he wants to do." ~ Bob Dylan