본문 바로가기

함수4

함수를 변수로 사용하기, 함수를 반환값으로 사용하기 1급 객체(First-class citizen) 함수 다루기함수형 프로그래밍에서 함수는 1급 객체이기 때문에 변수에도 담을 수 있고, 반환값으로도 사용할 수 있다. using System;public partial class Program{ static void Main(string[] args) { // 변수 Func temp1 = x => x; Func> temp2 = x => y => x + y; Func>> temp3 = x => y => z => x + y + z; // 함수, 메서드 Func temp4(int y) => x => x + y; // 식 본문 멤버 Func temp5(int y) .. 2024. 7. 23.
스칼라(Scala) 리스트에 대해서 알아보자 스칼라(Scala) 리스트스칼라에서는 다음과 같이 List라는 키워드를 사용하여 리스트를 정의할 수 있다. > val a = List(1, 2, 3)a: List[Int] = List(1, 2, 3) 출력을 해보면 List[Int] 라고 출력되어 Int로 구성된 리스트가 만들어진 것을 알 수 있다. 또한, 다음과 같이 여러 종류의 타입으로 구성된 리스트를 만드는 것도 가능하다. > val b = List(1, "2", 3.0)b: List[Any] = List(1, 2, 3.0) 참고로,  Any는 모든 스칼라 타입의 부모이기 때문에 Any 타입의 변수에는 모든 타입의 값을 담는 것이 가능하다. > val a:Any = 1> val a:Any = "1"> val a:Any = 2.0> val a:Any .. 2024. 7. 23.
일급 함수(First-class function) vs 고차 함수(Higher-order function) 일급 함수(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.Coll.. 2024. 3. 25.
정의역 vs 공역 vs 치역 집합론(集合論, set theory)에 대해서 함수형 관련 프로그래밍을 공부하다 보니 수학에 대해서 조금씩 공부하고 있다. 오늘은 집합론에서 다루는 정의역, 공역, 치역에 대해서 알아보려고 한다. 정의역(定義域, domain) 역은 '영역, 구역'을 뜻한다. 정의역은 '함수가 정의된 영역'을 말한다. 즉 함수에 입력되는 인자를 뜻한다. 공역(共域, codomain) 공은 공동, 공통, 공존 등에 쓰이는 한자로 함께라는 뜻이다. 공역은 '정의역'에 대응하는 영역'이라는 의미로, 함숫값이 존재하는 영역이다. 치역(値域, range) 치는 가치, 수치 등에 쓰이는 한자로, '값'이란 뜻이다. 여기서 값이란 함수의 값을 말하며, 치역은 함숫값의 범위를 뜻한다. 실제로 함수에 정의역을 입력해서 나온 값의 범위를 .. 2024. 3. 12.