Python - 람다 함수, 재귀 함수
<람다 함수>
: 익명함수
- 리스트 내포, 조건부 표현식 등과 같이 여러 줄의 코드를 간결하게 표현할 수 있도록 도와주는 새로운 함수 정의 방법 • - lambda로 정의할 수 있고, def와 같은 역할
- 함수의 이름을 정의하지 않고, 일회성으로 간편하게 사용할 때 유용
- def로 정의할 만큼 복잡하지 않을 때 활용
• lambda 매개변수1, 매개변수2, ... : 매개변수를 이용한 표현식
- 람다 함수를 add라는 변수에 할당해 일반 함수처럼 사용
cf) 람다 함수는 전통적인 함수와 다른 성격을 지님 (마크로 : macro)
- 따로 변수에 할당하지 않고 바로 한 줄로 표현 가능
- def 함수와 같이 기본 매개변수, 키워드 매개변수, 가변 매개변수 설정 가능
<람다 함수 활용>
- 조건문과 함께 한 줄로 사용 가능
ex) print((lambda a,b : a if a%2==0 else b)(1,3))
- map 내장 함수와 함께 활용: 시퀀스 자료형이 지닌 각 요소 값들에 대해 함수에 적용한 요소를 지닌 map 객체를 반환
- filter 내장 함수와 함께 활용: 시퀀스 자료형이 지닌 각 요소의 값에 대해 함수에 적용한 결과가 참인 원소값만을 지닌 filter 객체를 반환
- 복잡한 객체를 정렬할 때 활용
- 문자열 포맷팅과 함께 활용
<재귀 함수>
- 재귀 함수는 자기 자신을 호출하는 함수로 파이썬은 자기 자신을 함수 내에서 호출할 수 있기 때문에 재귀 함수로 활용할 수 있음
- 파이썬은 끝없이 자기 자신을 호출해 무한루프에 빠지는 것을 방지하기 위해 일정기간 반복하여 자기 자신을 호출할 경우 오류 발생
- 종료 조건이 필요함