# lambda function equal to javascript L function
# do not need to declare function
# lambda (var): (single expression)
# while loop cannot use lambda function as it is not expression
x = lambda : print("I am from lambda function")
x()
x = lambda y,z : print("I am from lambda function", y, z)
x(1,2)
def h():
print("I am from function h")
def g():
print("I am from function g")
x = lambda : (h,g) #<--- call back function
x()[0]() # x() = (h,g)<- Tuple ; [0] = h; () = (); Means:choose h()
h()
x = lambda y : [i for i in range(y)]
z = x(10)
print(z)
# using lambda function change to multiple function
x = lambda y : ([i for i in range(y)], [i**2 for i in range(y)])
a,b = x(10)
print(a,b)
a = 10
x = 1 if a > 1 else 0
print(x)
x = lambda a : 1 if a > 1 else 0 # if a > 1, return 1; else return 0
print(x(10))
x = lambda a : [i for i in range(a)] if a > 10 else [i**2 for i in range(a)]
print(x(5))