고위 함수

매일 공부(ML)·2022년 11월 28일
0

Fluent Python

목록 보기
28/130

객체로서의 함수

일급함수

고위함수

함수를 인수로 받거나, 함수를 결과로 반환하는 함수를 고위 함수라고 하고, 대표적인 예시론, map() 함수가 있다.

list.sort()와 sorted() 내장 함수에서 설명한 sorted() 내장 함수도 일급 함수의 예이고, sorted()함수는 선택적인 key 인수로 함수를 전달 받아서 정렬할 각 항목에 적용한다.

fruits = ['strawberry', 'fig', 'apple', 'cherry','raspberry','banana']
sorted(fruits, key=len)

함수형 프로그래밍 세계에선 Map(), filter(), reduce(), apply()등의 고위 함수가 널리 알려져있다.


map(), filter(), reduce()의 대안

함수형 언어는 모두 map(), filter(), reduce() 고위 함수를 제공하고, map()와 filter() 함수는 여전히 파이선3에 내장되어 있지만 지능형 리스트와 제너레이터 표현식이 등장한 이후엔 중요성이 떨어졌ㄷ.

#팩토리얼 목록을 map()/filter()로 생성하는 방법과 지능형 리스트로 생성
list(map(fact, range(6))

[fact(n) for n in range(6)]

list(map(factorial, filter(lambda n: n % 2, range(6))))
[factorial(n) for n in range(6) if n % 2]

#reduce()와 sum()을 이용해서 99까지 더하기

from functools import reduce
from operator import add
reduce(add, range(100))

sum(range(100))

all(iterable)

모든 iterable이 참된 값이 True를 반환하고, all([])은 True를 반환한다.

any(iterable)

iterable 중 하나라도 참된 값이면 True를 반환한다. any([])는 False를 반환한다.

profile
성장을 도울 아카이빙 블로그

0개의 댓글