[Python] 함수형 프로그래밍

2015. 3. 4. 09:00Programming/python

MAP

map(함수, 리스트)


MAP은 함수와 리스트를 인자로 받은 후, 리스트로부터 원소를 하나씩 꺼내서 함수에 적용한 후 그 결과를 새로운 리스트로

리턴한다.



def f(x):

   return x*x


x = [1, 2, 3, 4, 5]

y = map(f, x)


두 개 이상의 값을 map 함수에 집어넣을 때에는 아래와 같이 구현하면 된다.



x = [1, 2, 3, 4, 5, 6]

y = [6, 7, 8, 9, 10, 11]


z = map(lambda a, b:a+b, x, y)


FILTER


filter(함수, 리스트)


리스트에 들어있는 원소들을 함수에 적용시켜서 그 결과가 참인 값들을 새로운 리스트로 리턴한다.


filter(lambda x : x%2, [1,2,3,4,5,6])


REDUCE


reduce(함수, 리스트)


리스트에 들어있는 원소들을 함수에 적용시킨 후 그 결과를 리스트의 다음번 원소들과 결합시킴으로써 최종적 결과 값을 

리턴한다.



reduce(lambda x, y : x+y, [1, 2, 3, 4, 5]                   # ((((1+2)+3)+4)+5)