상세 컨텐츠

본문 제목

Swift언어08 - 모나드 ( equals 함수형 패러다임 )

Swift언어

by 앱등개발자IOS 2022. 10. 6. 12:04

본문

# Swift의 모나드

# 수학의 "범주론"에서부터 시작함

# 프로그래밍에서의  "모나드" 는 "범주론"의 모나드 개념을  차용한 정도의 의미를 갖는다. => monadic이라고 표현하기도 한다.

1. 모나드 (programming에서) 의 조건 3가지

map은

- 1. "타입을 인자로 받는 타입" (특정 타입의 값을 포장) 

- 2. "특정 타입의 값을 포장한 것을 반환하는 함수가 존재"

- 3. "포장된 값을 변환하여 같은 형태로 포장하는 함수가 존재"

 

모나드는 "값을 어딘가에 포장하는 개념"에서 출발한다. 

ex) 옵셔널 - 값이 있을지 없을지 모르는 상태를 포장하는 것 

 

# 컨텍스트와 콘텐츠 

Optional을 예로 들자면,

값이 없을 경우 .none case로,

값이 있는 경우 열거형의 .some(value) case로 값을 지니게 된다. 

이 경우 "컨텍스트" 안에 value라는 "콘텐츠"가 들어가있는 모양인 것이다. 

 

이처럼 Optional은 Wrapped타입을 인자로 받는 제네릭타입 - (1)번 조건

Optional<Int>처럼 다른 타입의 값을 갖는 상태의 컨텍스트 생성 가능 - (2)번 조건

 

 

관련글 더보기