monad-transformers

    5

    1답변

    이것은 모나드 트랜스포머와의 첫 번째 교신이므로 확실한 답이 될 수 있습니다. StateT MyMonad MyType 유형의 do 블록 안에 있다고 가정 해 봅시다. 동일한 유형의 다른 함수가 상태를 수정하고 MyMonad MyType 유형의 값을 반환하도록하려고합니다. 어떻게하면 될까요? 내 생각에 예제는 here guessSession에서 보여 주지만

    14

    1답변

    StateT을 사용하여 내 Scalaz state monad examples 답변에 대한 두 개의 State 상태 변압기를 결합하는 방법을 알아 내려고합니다. 매우 가까이에있는 것 같지만 sequence을 적용하려고 할 때 문제가 있습니다. val (freq, sum) = diceAndFreqSum ! new Random(1L) apply Map[Int,I

    5

    2답변

    데이터베이스에 대한 많은 액세스 권한을 가진 Happstack 응용 프로그램을 만들고 싶습니다. itemsRequest :: ServerConfig -> ServerPart Response itemsRequest cf = dir "items" $ do methodM [GET,HEAD] liftIO $ noticeM (scLogger cf

    13

    1답변

    저는 웹 앱을 작성하는 중 놀고 있습니다. 이 경우 scotty과 redis을 사용하고 있지만이 문제는 모든 웹/db 콤보에서 나타납니다. 이 전에는 힙합을 사용했기 때문에 거기에서도 예제를 좋아합니다. 는 스코티가 당신은 쉽게 경로 내에서 데이터베이스 연결을 액세스 할 수 있습니다 중첩 된 모나드에 경로를 정의 : GET에서 main = do d

    45

    2답변

    IO를 통해 MT 스택 (또는 MT 하나)을 사용하는 것이 적합합니다. 모든 행동이 몹시 성가시기 전에 리프트를 사용하는 것을 제외하면 모든 것이 좋습니다! 나는 이것에 관해 정말로 아무것도 할 수 없다고 생각합니다. 그러나 나는 어쨌든 물을 것이라고 생각했습니다. 전체 블록을 들어 올리는 것을 알고 있지만 실제로 코드가 혼합 유형 인 경우 어떻게해야합니까

    6

    2답변

    4 비트 마이크로 프로세서를 에뮬레이트하고 있습니다. 레지스터, 메모리 및 실행중인 출력 (페치 실행 사이클 카운터가있는 경우 보너스 포인트)을 추적해야합니다. 나는 모나드가 없어도 이것을 할 수 있었지만, 많은 것을 한 번에 지나치게 지나치게 지저분하게 느꼈다. 또한 함수 정의는 길고 읽기가 어렵다. 나는 이것을 모나드와 함께 시도했다. 나는 분리 된 모

    5

    1답변

    균형 브래킷 문제를 해결하려고합니다. 나는 연속적인 IO를하고 싶지 않고 getLine을 한 번 호출하여 결과 문자열을 파싱합니다. 따라서 문제를 해결하는 함수는 두 개의 다른 상태, 즉 입력 문자열의 소비되지 않은 부분과 대괄호 스택을 처리합니다. 내가 스택 조작하기위한 일부 기능을 설정하려면 : 그러나 나는 StateT 모나드에서 운영하고있어, type

    6

    2답변

    현재 모나드 변환기 ListT을 많이 사용하는 프로젝트를 작성 중입니다. 일반 목록을 사용할 때 비 결정론을 구현하는 것은 매우 쉽습니다. 그러나 일단 코드를 ListT으로 변환해야한다면 훨씬 더 복잡해졌습니다. . 간단한 예를 들어 : [a] 실제로 두 가지 기능을 구성하는 필요 ListT a까지 변환 : 그것은 간단하지만 conv :: (Monad m)

    5

    2답변

    하스켈에서 오류를 처리하기 위해 다음과 같은 모나드 변환기가 있습니다. 나는 사용자 정의 클래스와 Error를 인스턴스화하고 오류를 처리하는 기준에 매우 유연한 수단을 가질 수 instance (Monad m, Error e) => Monad (EitherT e m) where return = EitherT . return . return

    7

    2답변

    상황 :이 같은 오류도 경고 목록을 추적 모나드, 뭔가를 생산하기 위해 노력하고있어 : data Dangerous a = forall e w. (Error e, Show e, Show w) => Dangerous (ErrorT e (State [w]) a) 즉 Dangerous a는 (Either e a, [w])e을 초래하는 작업입니다 표시