람다 함수는 이름이 없는 한 줄짜리 함수이다. 


lambda 콤마로 구분된 인수들 : 식


받는 인수가 없고 언제나 1을 리턴하는 람다 함수는 다음과 같다.

lambda : 1


람다 함수는 값을 리턴하기 위하여 return 문을 사용하지 않는다. 

람다 함수의 몸체는 문이 아닌 하나의 식이어야 한다.

람다 함수는 함수 레퍼런스를 리턴한다.

람다 함수도 디폴트 값과 가변 인수를 지정할 수 있다. ex) lambda x, *args : args


람다 함수는 주로 함수를 인수로 넘겨주어야 하는 경우에 편리하게 사용된다.



함수 def로 구현한다면, 함수를 정의하고 나서 함수를 인수로 전달할 수 있지만 람다 함수는 정의하는 즉시 인수로 전달이 된다.

이와 같은 차이는 문(statement)과 식(expression)에서 온다. 문은 if, for while, class, def 등과 같이 파이썬적 문장을 구선한다. 문은 리턴값이 없으며, 식의 일부분으로 사용될 수 없다. def는 문으로 함수를 정의한다.

식은 결과 값이 존재하며 다른 식의 일부로 사용될 수 있다. 람다 함수는 식이다. 따라서, 정의와 함께 함수 인수로 전달하는 것이 가능하다.


'Programming > Python' 카테고리의 다른 글

함수적 프로그래밍 - filter 내장 함수  (0) 2013.04.28
함수적 프로그래밍 - map 내장 함수  (0) 2013.04.28
튜플 인수와 사전 인수로 함수 호출  (0) 2013.04.28
가변 인수  (0) 2013.04.28
키워드 인수  (0) 2013.04.27
Posted by scii
: