Monday, September 20, 2021

Calculator Python: Lambda Functions

Calculator Python: Lambda Functions


Introduction to Lambda Functions


Lambda functions are a quick, one expression, one line, python function.   Lambda functions do not require to be named though they can be named for future use if desired.  


The syntax for lambda functions are:


One argument:


lambda  argument : expression


Two or more arguments:


lambda  arg1, arg2, arg3, ...  : expression


The expression must return one result.  


The quick, versatile of lambda functions are make lambda functions one of the most popular programming tools.


Filter, Map, and Reduce


Filter:  uses a lambda function to filter out elements of a list and array using criteria.   For a list, the list command must be used to turn the result into an actual list. 

 

Syntax using Lambda and List:  


list(filter(lambda  arguments : expression))


Map:  uses a lambda function to apply a function to each element of a list.  Like filter, the list command must be used to turn the result into an actual list.


Syntax using Lambda and Map:


list(map(lambda arguments : expression))


Reduce:  uses a lambda function to use two or more arguments in a recursive function.


Syntax using Lambda:


reduce((lambda arguments : expressions), list)


Note, as of August 31, 2021, that the reduce command is NOT available on any calculator, only on full version of Python 3.  This may change with future updates.  


The following calculators have these commands in their Python programming (as of 8/30/2021):


HP Prime:  lambda, filter, map


Casio fx-CG 50 and fx-9750GIII: lambda, map


Numworks: lambda, filter, map


TI-84 Plus CE Python:  lambda, filter, map


TI-Nspire CX II Python:  lambda, filter, map


Nuwmorks Sample Python File: introlambda.py


from math import *

from random import *

# lambda test


n=randint(10,9999)

tens=lambda x:int(x/10)%10

hunds=lambda x:int(x/100)%10

thous=lambda x:int(x/1000)%10


print(n)

print(tens(n))

print(hunds(n))

print(thous(n))


print("List:")

l1=[1,2,3,4,5,6]

print(l1)


print("Filter demonstration")

print("Greater than 3")

l2=list(filter(lambda x:x>3,l1))

print(l2)

print("Odd numbers")

l3=list(filter(lambda x:x%2!=0,l1))

print(l3)


print("Map demonstration")

print("Triple the numbers")

l4=list(map(lambda x:3*x,l1))

print(l4)

print("exp(x)-1")

l5=list(map(lambda x:exp(x)-1,l1))

print(l5)


Sources


Maina, Susan "Lambda Functions with Practical Examples in Python"  Towards Data Science (membership blog with limited free access per month)  https://towardsdatascience.com/lambda-functions-with-practical-examples-in-python-45934f3653a8  Retrieved August 29, 2021


Simplilearn  "Learn Lambda in Python with Syntax and Examples"  April 28, 2021. https://www.simplilearn.com/tutorials/python-tutorial/lambda-in-python  Retrieved August 29, 2021


All original content copyright, © 2011-2021.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author. 


1 comment:

  1. Hi Eddie, nice to be able to us Python in some calculators! A small aside: your example code is right: the syntax of map and filter are like the one of reduce: the first parameter expects a function / lambda, the second one is an iterable (such as a list). You only mentioned the first parameter in the syntax of map and filter.

    Regards, Marko

    ReplyDelete

Σ(1 / (a^n)) from n=1 to m

 Σ(1 / (a^n)) from n=1 to m This blog entry covers the sum of the series: Σ[1 / (a^n), n=1 to m] with n and m positive integers Specific Cas...