일급 함수(First-class Function)
프로그래밍 언어에서 함수(Function)를 일급 시민(First-class Citizen)으로 취급하는 것을 말한다.
즉, 함수를 변수에 할당하거나 파라미터로 전달하고 반환값으로 함수를 반환하는 등을 할 수 있는 언어를 말한다. 이러한 언어로 C#, C++, python, javascript 등이 있다.
고차 함수(Higher-order Function)
고차 함수는 하나 이상의 함수를 인자로 받거나 함수를 결과로 반환하는 함수를 말한다.
즉, 다른 함수에서 작용하는 함수이다.
고차 함수(Higher-order Function) 예제
- map() function => select() function
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
var sequence = list.Select(x => x * x);
foreach (var item in sequence)
{
Console.Write($"{item} "); // 1 4 9 16 25
}
}
}
- filter() function => where() function
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<string> list = new List<string>() { "word", "function", "functional programming", "filter" };
var sequence = list.Where(x => 6 < x.Length);
foreach (var item in sequence)
{
Console.Write($"{item} "); // "function", "functional programming"
}
}
}
- reduce() function => aggregate() function
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
var sum = list.Aggregate((x, y) => x + y);
Console.Write(sum); // 15
}
}
함께 읽으면 좋은 글
참조 사이트
'프로그래밍 > 함수형 프로그래밍' 카테고리의 다른 글
리스프(LISP) 기본 문법에 대해서 알아보자 (0) | 2024.07.10 |
---|---|
C#의 커링(Curring) (0) | 2024.03.25 |
함수형 프로그래밍 관련 개념 정리 (0) | 2024.03.22 |
재귀 vs 꼬리 재귀 (1) | 2024.03.15 |
C#으로 함수형 프로그래밍을 해보자 (0) | 2024.03.14 |
댓글