higher order function 란?

박준영·2021년 7월 19일

일급 객체의 특징을 가진 함수가 있다면 그것을 고차함수(Higher Order Function)이라고 부를 수 있습니다. 좀 더 특징을 다듬어 보자면

  • 다른 함수를 생산/소비 하는 함수
  • 다른 함수를 인자로 받거나, 결과로 함수를 반환하는 함수

이것도 헷갈린다면 일급 객체특징의 2,3 의 역할을 하고 있는 함수가 있다면 그것이 고차함수 입니다.

  • 매개변수에 전달할 수 있어야 한다.
  • 반환값으로 사용할 수 있어야 한다.

파이썬 빌트인 함수 중에서 대표적인 고차함수로 map이 있습니다. map 함수는 인자로서 함수와 순회가능한 객체를 받습니다.

def double(num):
    return num * 2

num_list = [1, 2, 3, 4, 5]
doubled_num_list = list(map(double, num_list))

print(doubled_num_list)  # [2, 4, 6, 8, 10]

#double이라는 함수와 숫자 리스트들을 매개변수로 주었다

추가 정리

map 함수란?

map 함수는 리스트의 요소를 지정된 함수로 처리해준다. 여러 개의 데이터를 한 번에 다른 형태로 변화하기 위해 사용된다.

a = [1.2, 2.5, 3.7, 4.6]
a = list(map(int, a))
print(a) # [1, 2, 3, 4]

map 함수의 특징

  • map 함수는 원본 리스트를 변경하지 않고 새 리스트를 생성한다.
  • map 함수는 map 타입으로 결과를 리턴하기 때문에 리스트나 튜플 등으로 변환한다.

매개변수 , 인수

매개변수와 인수가 함께 이용을 많이 하기때문에 헷갈리는 경우가 많아서 정리

매개변수- 함수의 입력으로 전달되는 값을 받는 변수

인수 - 함수를 호출할때 전달하는 입력값

def add(a,b): #a, b 매개변수
	return a + b

print(add(3,4)) # 3, 4 인수

0개의 댓글