state-monad

    1

    1答えて

    私はちょうどスカラ、より具体的にはState Monadの猫のライブラリーを調べました。 私は潜在的に大きな文字列(のStringBuilder)を分割し、分割文字列と残りのStringBuilderを返すいくつかのロジックを作成したいのおもちゃの例として: Stateモナドの作品の一つのステップを実行している object Splitter { def apply(maxSize: I

    9

    2答えて

    私はと読んでいます。例文でPurescriptを読んでいて、読者のモナドを紹介しています。この例は次のようになります。 createUser :: Reader Permissions (Maybe User) createUser = do permissions <- ask if hasPermission "admin" permissions then m

    4

    1答えて

    ショートバージョン:私はタイプMaybeT (State <type>)()のモナドにrunMaybeT、その後runStateを使用するときに何の状態変化がMaybe結果がJust()に等しいであっても発生しないように、それが見えます。どうして? フルバージョン:私はハノイの塔を解決するプログラムを書いています。私がしたかった、そして、 Towers [] [] [1,2,3,4,5] :こ

    2

    1答えて

    私はハスケルのモナドで遊んでいるだけで、修正できないようなエラーが出てくる。私のコードセグメントは、ステートモナドを使用して、文字列の最初の2文字をまとめてステートの一部として返します。私の "put"行は私にエラーを与え続ける: * Non type-variable argument in the constraint: MonadState [a] m (Use FlexibleC

    -2

    1答えて

    私は取得とモナド状態での変更の定義と混同しています。 Somewhereは言う: が取得する: "供給投影関数を使用して、状態の特定のコンポーネントを取得します"。 modify:状態モナド内で古い状態を新しい状態にマッピングします。古い状態は放棄されます。 つまり、修飾を使用してhereのような状態のコンポーネントに直接値を割り当てることができます。 somewhereしかし、elseは、mod

    0

    1答えて

    Functional Programming in Scalaの第6章を読んで状態モナドを理解しようとしたら、副作用クラスをラップすることについて質問があります。 いいえ、私は多分自分自身を変更するクラスがあります。 class SideEffect(x:Int) { var value = x def modifyValue(newValue:Int):Unit = { va

    0

    1答えて

    私はWriterTとState(それはadvent of code day 15です)を使ってHaskellの練習問題を解決しようとしている概念を理解しようとしています。何らかの理由で、私はメモリの負荷を使用して終了し、私のノートブック(ちょうど4Gラム)が停止に終わることを理解していない。 私の最初のアイデアは、厳密さを使い、周りに振りかけることでしたが、問題は解決しません。 誰かが私がどこに間

    1

    2答えて

    mtlのモナド・スタックがあるとします。 ExceptT String (WriterT String (State s a))、外側のモナドをアンラップする必要なしに内部状態のモナドをどのように評価できますか? have :: ExceptT String (WriterT String (State s)) a f :: State s a -> a want :: ExceptT St

    5

    1答えて

    私はこれに続く続きを一般的に理解しようとしています。tutorial。 しかし、私は困難がセクション2.10で次の例を理解するために持っています: # let get() = shift (fun k -> fun state -> k state state) ;; get : unit => ’a = <fun> state私は考えタイプintです。私が得ないのは、kのタイプで

    1

    2答えて

    ことでレンズのStateモナドと使用を理解しようと、私はシンプルなカウンタのレンズの驚くほど平凡な定義に到着したものの: self :: ASetter s s s s self = ($) incrementUsingLens :: State Int() incrementUsingLens = self %= (+1) 私の場合は type ASetter s t a b = (