Python Function Pipeline
In this article, we show how to use "Map & Reduce, not loop" to implement function pipeline in python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| def even_filter(nums): return filter ( lambda x: x % 2 = = 0 , nums) def multiply_by_three(nums): return map ( lambda x: x * 3 , nums) def convert_to_string(nums): return map ( lambda x: 'The Number: %s' % x, nums) nums = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] pipeline = convert_to_string( multiply_by_three( even_filter(nums) ) ) for num in pipeline: print num |
In the above code, you have to use nested functions to achieve the goal, which is kinda clunky. Actually, a more natural way is as following.
1
2
3
| pipeline_func(nums, [even_filter, multiply_by_three, convert_to_string]) |
Here is how we implents pipeline_func:
1
2
3
4
| def pipeline_func(data, fns): return reduce ( lambda a, x: x(a), fns, data) |