10
상태 모나드 "인터페이스"는연속 모나드 "인터페이스"
class MonadState s m where
get :: m s
put :: s -> m()
(+ 창 및 바인드) State
생성자를 사용하지 않고 주 모나드와 가능한 연산을 구성 할 수있다. 예를 들어, State $ \s -> (s+1, s-1)
은 내가 ask
, return
및 (>>=)
을 사용하여 해당 계산을 만들 수 있기 때문에, Reader
생성자를 사용하지 않아도,
do s <- get
put (s-1)
return (s+1)
이와 비슷하게과 같이 쓸 수있다. 정확하게 : Reader f == ask >>= return . f
.
MonadCont
유일한 기능)
callCC
를 사용
Cont r a
의 모든 인스턴스를 작성하고
Cont (\c -> ...)
같은 것을 입력하지 않을 수 있습니까?
그러나 내가 계속 연장을 구분하면이 변경 사항을 기대합니다 ... –