[파이썬] 파이썬 2와 파이썬 3의 람다 함수 및 함수형 프로그래밍 차이

파이썬은 다중 패러다임 언어로서 함수형 프로그래밍도 지원합니다. 함수형 프로그래밍은 상태 변이가 없고, 함수를 first-class 객체로 취급하여 데이터 처리를 추상화하는 프로그래밍 패러다임입니다. 람다 함수는 함수형 프로그래밍에서 자주 사용되는 개념으로, 파이썬에서도 람다 함수를 사용할 수 있습니다. 하지만 파이썬 2와 파이썬 3에서 람다 함수 및 함수형 프로그래밍을 사용하는 방법에는 차이가 있습니다.

람다 함수

람다 함수는 익명 함수로, 한 줄로 간결하게 표현할 수 있습니다. 파이썬에서 람다 함수는 다음과 같이 작성됩니다:

lambda arguments: expression

예를 들어, 두 개의 숫자를 더하는 람다 함수는 다음과 같이 작성할 수 있습니다:

add = lambda x, y: x + y

파이썬 2에서의 람다 함수

파이썬 2에서는 람다 함수의 사용에 제약이 있습니다. 파이썬 2의 람다 함수는 단일 식(Expression)으로만 작성할 수 있으며, 여러 줄의 코드나 제어문을 포함할 수 없습니다. 따라서 복잡한 로직을 처리하는 람다 함수는 작성할 수 없습니다. 또한 파이썬 2의 람다 함수에서는 print문을 사용할 수 없습니다.

파이썬 3에서의 람다 함수

파이썬 3에서는 람다 함수의 사용이 더 자유롭습니다. 파이썬 3의 람다 함수는 다중 식(Statement)을 포함할 수 있습니다. 이는 더 복잡한 로직을 처리할 수 있도록 해줍니다. 또한 파이썬 3의 람다 함수에서는 print문을 사용할 수 있습니다.

함수형 프로그래밍

파이썬에서 함수형 프로그래밍을 사용하기 위해서는 함수형 프로그래밍을 위한 내장 함수와 모듈을 사용할 수 있습니다. map, filter, reduce와 같은 함수는 함수형 프로그래밍에서 자주 사용되는 함수이며, 파이썬에서도 이러한 함수를 사용할 수 있습니다.

예를 들어, map 함수를 사용하여 리스트의 모든 요소에 함수를 적용하는 예제를 살펴봅시다:

numbers = [1, 2, 3, 4, 5]
squared = map(lambda x: x**2, numbers)
print(list(squared))  # [1, 4, 9, 16, 25]

위의 예제에서 map 함수를 사용하여 numbers 리스트의 모든 요소에 lambda 함수를 적용하고, 그 결과를 list로 변환하여 출력합니다.

이와 같이 함수형 프로그래밍은 파이썬에서 간편하게 활용할 수 있습니다.

결론

파이썬 2와 파이썬 3에서 람다 함수 및 함수형 프로그래밍을 사용하는 방법에는 차이가 있습니다. 람다 함수를 사용할 때는 해당 버전의 파이썬 문서를 참고하여 사용 가능한 기능과 제약 사항을 확인하는 것이 좋습니다. 함수형 프로그래밍도 파이썬에서 쉽게 활용할 수 있으며, 내장 함수와 모듈을 잘 활용하면 좀 더 선언적이고 간결한 코드를 작성할 수 있습니다.