# 수학의 "범주론"에서부터 시작함
# 프로그래밍에서의 "모나드" 는 "범주론"의 모나드 개념을 차용한 정도의 의미를 갖는다. => monadic이라고 표현하기도 한다.
map은?
- 1. "타입을 인자로 받는 타입" (특정 타입의 값을 포장)
- 2. "특정 타입의 값을 포장한 것을 반환하는 함수가 존재"
- 3. "포장된 값을 변환하여 같은 형태로 포장하는 함수가 존재"
모나드는 "값을 어딘가에 포장하는 개념"에서 출발한다.
ex) 옵셔널 - 값이 있을지 없을지 모르는 상태를 포장하는 것
Optional을 예로 들자면,
값이 없을 경우 .none case로,
값이 있는 경우 열거형의 .some(value) case로 값을 지니게 된다.
이 경우 "컨텍스트" 안에 value라는 "콘텐츠"가 들어가있는 모양인 것이다.
이처럼 Optional은 Wrapped타입을 인자로 받는 제네릭타입 - (1)번 조건
Optional<Int>처럼 다른 타입의 값을 갖는 상태의 컨텍스트 생성 가능 - (2)번 조건
Swift언어08 - 맵.필터.리듀스 (0) | 2022.10.05 |
---|---|
Swift언어7 - 함수형 프로그래밍_옵셔널 체이닝(?)과 빠른 종료(guard문) (0) | 2022.10.04 |
Swift언어6 - 함수형 프로그래밍_클로저 (0) | 2022.10.01 |
Swift언어 복습노트 5 - 구조체와 클래스 그리고 instance(작성중) (0) | 2022.09.10 |
Swift언어 복습노트 4 - 함수와 Optional (1) | 2022.09.10 |