Recently I have found many uses for the "function that returns a function" python idiom. The basic idea is something like this:
def get_is_small(limit):
def is_small(i):
return i < limit
return is_small
The net result is that you have a function reusable in many different situations, without having to keep track of the limit value:
>> is_quite_small = get_is_small(15) >> is_very_small = get_is_small(3) >> is_quite_small(6) True >> is_very_small(6) False
This should all become much easier to do once python 2.5 is released, as there is a general purpose function to provide the outer function for you. I believe it will look something like:
import functional
def is_small(limit, i):
return i < limit
is_quite_small = partial(is_small, 15)
is_very_small = partial(is_small,3)
Update: Now that 2.5 has been released, I can confirm that it does have a partial function in the standard library - but in the module functools.
No comments:
Post a Comment