스 카즈 상태 모나드를 사용하여 XML로 변환하는 중첩 구조가 있습니다. 다중 레벨 중첩 구조를 다룰 때까지 잘 작동합니다. 다음은 내가하는 일과 비슷한 간단한 예입니다. sealed trait Nested
case object Leaf extends Nested
case class Foo(inner: Nested) extends Nested
case
모나드 가져 오기에서 약간의 비트를 읽어야합니다. 이제 내 코드 나는 상태 모나드의 일종으로이 포장 할 readBits :: Int -> Int -> Get (Word32, Int)
readBits count state = ...
readValue :: Get (Word32, Word32)
readValue = do
-- read fst b
Monads와 Haskell이 처음인데, 이것을 사용할 때 값을 반환하는 방법을 이해하려고합니다. 내 코드는 다음과 같이 보입니다 : foo :: A -> B
foo a = do b <- fooC a (C 0)
-- want to return just (B "b")
fooC :: A -> C -> State MyState B
fooC a
http://hackage.haskell.org/packages/archive/mtl/1.1.0.2/doc/html/src/Control-Monad-State-Lazy.html instance (Monad m) => MonadState s (StateT s m) where
get = StateT $ \s -> return (s, s)
pu
나는 Structure and Interpretation of Computer Programs에서 일하고 있으며 하스켈에서 연습을 마쳤습니다. 첫 번째 두 장은 괜찮 았지만 (코드는 github) 3 장은 나를 더 열심히 생각하게 만듭니다. 먼저 은행 계좌의 예와 함께 상태 관리에 대해 이야기합니다. (define w1 (make-withdraw 100))
나는 어려운 나를 MonadState을 이해하기 위해 찾을 수 있습니다. 이유는 어쩌면 자신의 데이터 구조에 기록 구문과 함께 혼합 대부분의 예제. 그래서 레코드 구문을 사용하지 않고 MonadState을 구현하려고했습니다. 내가 쓴 다음 코드는 컴파일러를 통과했지만 그것은 나에게 완전히 말도 안되는 것 같습니다. 는이 코드에 어떤 문제가 있습니까? 레코드
의가 나는 monadT 있다고 가정 해 봅시다. 과 편의를 위해 해당 runWrap 기능 : type Env = Map.Map Char Integer
runWrap :: Env -> Int -> Int -> Wrap a -> a
runWrap env st1 st2 m = runIdentity $ evalStateT (evalStateT (runRead
에 대한 국가 연결자 누락을 검색 하시나요 나는 현재 다음과 같습니다 코드를 한 줄에이 작업이 있지만 찾을 수 없습니다. (????) :: MonadState s m => Lens' s a -> (a -> m a) -> m a
질문 : 같은 콤비가 존재 하는가 나는 그것이 같은 의견을 가지고한다고 생각하십니까? 그렇다면 무엇입니까? 나는 그것을 검색하는
ST-Monad에서 두 개의 계산을 병렬로 실행하는 방법을 찾고 있습니다. STUArray를 사용하여 다소 큰 배열을 만들고 있는데 병렬로 처리하고 싶습니다. 그것은 순수한 코드와 IO 모나드와 두 번째 거래를 다루는으로 지금까지 내가 찾은 this 및 this Q & A는 여기에 유래에, 그러나 첫 번째는, 내 경우에는 적용되지 않습니다 -하지만 난에서
상태 모나드의 세부 사항을 연구하기 위해 간단한 상태 모나드 함수의 완전한 desugared 버전을 만들고, How does 'get' actually /get/ the initial state in Haskell?에서 시작된 생각을 완료하려고합니다. J Cooper의 대답. 예제 상태 모나드 함수는 상태와 입력 값을 단순히 바꿔서 개념적으로 입력이 (v,