➤ Supabase➤ Scala➤ Github➤ React Native➤ projectdiscovery➤ Remix➤ Rescript➤ Purescript➤ npm➤ Cloudflare➤ React➤ Next.js➤ GO➤ Hyper-V➤ Tibero➤ Git➤ Algorithms, 2020년
퓨어스크립트 북 챕터11 앞부분 가볍게 읽어보는 메모장
April 23, 2022가볍게 읽어보기!
- 참고 자료 : purescript-transformerless
The State Monad
Control.Monad.State
가 제공하는 API, 소스코드get
: 현재 state 가져옴get = state \s -> Tuple s s
gets
: 현재 state에 따라 달라지는 값 가져옴gets f = state \s -> Tuple (f s) s
- 이것의 용도는 뭘까...?
put
: state 설정put s = state \_ -> Tuple unit s
modify
: 현재 상태에 함수를 적용하여 상태 수정, 반환 값은 새 상태 값modify f = state \s -> let s' = f s in Tuple s' s'
modify_
modify_ f = state \s -> Tuple unit (f s)
The Reader Monad
- global configuration에서 읽을 수 있는 기능 제공
- State 모나드는 읽고 쓰는 기능, Reader 모나드는 단일 데이터 부분 읽는 기능만
ask
: 현재 구성 읽기local
: 수정된 구성으로 계산 실행
The Writer Monad
- 반환 값 외에 보조 값을 누적
- 어떤 모노이드의 값을 누적하는데 사용
- 모노이드가 뭐더라 ㅠ
Monad Transformers
-
State
-StateT
-
Reader
-ReaderT
-
Writer
-WriterT
-
What is a monad transformer?
- 맞춤형 모나드 생성하고 필요한 부수효과 선택 가능
- do notation과 applicative combinators 표현력 유지 가능