Monad์๋ ์ด๋ค ์ข ๋ฅ๊ฐ ์๋๊ฐ?
Monad๋
- ๊ฐ๋ ์ ๋ํ ์๋ฏธ๋ก ์ ํ์ฅ์ ๋์๋๋ ์ ๋ค๋ฆญ ํ์ .
lift: (T->U) -> (M<T> -> M<U>)
- ์์์ ์ผ๋ณ์ ํจ์๋ฅผ ๋ชจ๋๋ ํ์ ๊ฐ์ ํจ์๋ก ํ์ฅํด์ฃผ๋ ํจ์
unit: T -> M<T>
- ์์์ ํ์ ์ ์๋ฏธ๋ฅผ ๋ณด์กดํ์ฑ ๋ชจ๋๋ ํ์ ์ผ๋ก ํ์ฅํด์ฃผ๋ ํจ์
flat: M<M<T>> -> M<T>
- ๋ชจ๋๋ ํ์ ์ ์๋ฏธ๋ฅผ ๋ณด์กดํ์ฑ ์ฐจ์์ ๋ฎ์ถฐ์ฃผ๋ ํจ์
์ข ๋ฅ
Optional
Array
Future
Reader
Writer
State
IO
Optional
, Array
๋ ์๋ตํ๋ค.