以下の関数を1行で書き換えることはできますか? action :: NewTenant -> AppM (Either TenantCreationError Tenant)
action newTenant = (createTenant newTenant) >>= \case
Left x -> return $ Left x
Right y -> do
t
ユーザーが入力した情報を読み込み、タイプを使用するタイプPersonに解析しようとしています。 data Person = Person String Int Gender String
data Gender = Male | Female | NotSpecified deriving Read
instance Show Gender where
show Male = "m
このような質問は私の前の質問と同じです:State and IO Monads 私の目標は、ファイル用の簡単なテキストエディタを作成することです。私は既にEditorコンポーネントを持っています。このコンポーネントは、基礎となるデータ構造上のすべての編集アクションを素早くカプセル化します。 type Session = StateT AppState (StateT Editor IO)
Ap
私は、コンパイラは次のコード(コードのコンパイル)文句ないことに困惑している:私は、例えば、どこかの制約としてMonadIO mを追加する必要がありました場合にはすぐに、再び私には理にかなって {-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Main where
import Control.Monad.IO.Class (MonadI
を結合するための最良の方法である私は、このグローバルな状態 type GlobalState a = State Int a
が、1つの関数は、独自のローカル状態とのアクセスを必要としてい type LocalState a = State [String] a
しかし、私はよそれらを組み合わせることは今確かではありません。 今、私はちょうどそれが正常に動作しますが、私はそれが私が唯一の1