Lambda

  • 자바에서 람다식을 쓰는 이유는 익명 구현 객체를 간편하게 대체하기 위해 사용
  • 파이썬에서는 익명 함수를 대체하기 위해 사용
  • 파이썬에서 구현하는 익명 구현 함수는 원라인만 가능함
  • Lambda 함수를 이용하여 함수를 반환하는 함수를 정의할 수 있는데 클로저(Closure)라고도 함
# 예제 1
# 함수 구현
def f(x, y):
    return x + y


print(f(1, 4))
# lambda로 구현
f1 = lambda x, y: x + y
print(f1(1, 4))
print((lambda x, y: x + y)(1, 4))

# 결과 값
# 5
# 5
# 5
# 예제 2
f = lambda n, m : n if n%2 == 0 else m
print(f(1, 3))	# 결과: 3
print(f(2, 3))	# 결과: 2
# 예제 3
def makeFunc(n):
    return lambda a : a % n == 1

isOdd = makeFunc(2)
print(isOdd(2))			# 결과: Fasle
print(isOdd(3))			# 결과: True
print(isOdd(4))			# 결과: False