TIL

190422_TIL(first class function)

first class function

  • 프로그래밍 언어 중 함수를 다른 변수와 동일하게 다루는 언어함수우선순위(First-class funcions)를 가졌다고 표현한다.
  • first class function을 지원하는 언어는 다음 세 가지 조건을 충족하여야 한다.
    1. 함수를 인자(argument)로 전달할 수 있는가?
    2. 함수를 리턴(return) 값으로 전달할 수 있는가?
    3. 함수를 변수에 전달할 수 있는가?

함수를 인자로 전달

1
2
3
4
5
6
7
8
def f(func, a, b):
return func(a, b)
def g(a, b):
return a+b
a=10
b=20
f(g, a, b)
# output : 30

함수를 변수에 전달

1
2
3
4
# 위에 선언한 g() 함수를 변수에 전달
t = g
t(20, 30)
# output : 50

함수를 리턴

1
2
3
4
5
6
7
8
9
10
11
12
def calc(kind):
if kind=='add':
def add(a, b):
return a + b
return add
elif kind=='sub':
def sub(a, b):
return a - b
return sub
adder=calc('add')
adder(10, 20)
# output : 30
  • pythonJavaScript는 모두 first class function을 지원하는 언어이다.
Share