-rnnlg
Last Updated: February 25, 2016
·
690
· suhailsherif # Functional Python

###### functional programming

Try using functional programming and lambda functions (anonymous one line one time usage functions that you need not waste namespace defining) while programming in Python.
It increases efficiency and better represents your code's function.

Eg (random): Calc e^x + 1 for all natural x in [1,10]. Take the values which have an even greatest integer value and find their product.

Step 1: Finding function values

``fvals = [math.e**x + 1 for x in range(1,11)]``

OR

``fvals = map(lambda x: e**x + 1, range(1,11))``

Step 2: Keeping only even values.

``fevenvals = filter(lambda x: int(x)%2==0, fvals)``

Step 3: Go through the list multiplying elements together.

``answer = reduce(lambda x,y: x*y, fevenvals)``

In my opinion, the above is way more elegant, simple and clear than

``````answer = 1.0
for i in xrange(1,11):
t = math.e**i + 1
if int(t)%2==0:

#### 2 Responses

1704 What do you mean "One time use" in the context of lambdas? They're first class objects.

over 1 year ago ·
3201 @richoh I meant that you need not assign them a variable. So in that case, as anonymous functions, you can't access them after that one line.

over 1 year ago ·