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๋Š” ์ƒ๋žตํ•œ๋‹ค.

Future

Reader

Writer

State

IO

Reference