lens

    7

    3答えて

    いくつかのネストされたケースクラスとフィールドaddressesはSeq[Address]です: val employee = Employee(Company(Seq( Address(Street("aaa street")), Address(Street("bbb street")), Address(Street("bpp street"))))) それは

    6

    1答えて

    私はlensとzippersと苦労しています。 Control.Monad.MonadPlus m => m (Zipper Top Int [Int] :>> A Int):私はのようなジッパーの種類を作成する方法、data A t = A tを持つghci > import Control.Lens > import Control.Zipper > > :t within (ix 1)

    6

    1答えて

    zippersとlensを使用して問題にぶつかりました。たとえば次のよう考えてみましょう:あなたが見ることができるように、私はTop :>> A :>> AとTop :>> A :>> BにTop :>> Aのいずれかから移動することができます {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeOperators #-} import Cont

    9

    1答えて

    私は次のコードを持っています。私は、ゲームの状態が与えられたときにアクティブなプレイヤーの人生を変更することができるようにしたいと思います。私はactivePlayerレンズを思い付いたが、私がしようとすると-=演算子と組み合わせて使用​​するときに、私は次のエラーが表示されます > over (activePlayer.life) (+1) initialState <interactive>

    7

    2答えて

    私は2枚のレンズがある場合: foobar :: Lens' X (Foo, Bar) foobar = ... foo bar か、それは不可能です: foo :: Lens' X Foo bar :: Lens' X Bar 製品レンズを構築する方法はありますか?

    17

    2答えて

    Ramda.js(およびレンズ)を使用して、以下のJavaScriptオブジェクトを変更して、そのオブジェクトの「NAME:VERSION1」を「NAME:VERSION2」に変更します。 ID = "/ 1/B/i"である。 深く入れ子になった値を変更するだけで、それ以外の場合は構造全体を変更せずに保持したいので、レンズを使用したいと思います。 配列がどのような順序になるのかわからないので、le

    2

    1答えて

    私は using arrows for XML manipulation の(2010年)の例に走った がarrow抽象化することには利点がユースケースのために、より最近のlensの上にあるのは、そこに示されましたか?

    7

    1答えて

    は、私が持っているとしましょう。これはレンズなしで可能です: eg1 :: T a (b -> c) -> b -> T (a, b) c eg1 (T foo bar) b = T (foo, b) (uncurry bar) しかし、私はレンズでこれを行うことができますか? eg :: T a (b -> c) -> b -> T (a, b) c eg t b = t & foo %

    6

    1答えて

    レンズは、変更不能なレコード変更を実行する関数です。レコードの内容の一部を変更するレコードをコピーします。レンズは、レンズを組み合わせてより複雑な修正を行うためのライブラリです。 逆抽象を定義する正しい用語を探しています。 2つのオブジェクトを比較し、それらの間の差を返す関数もあります。このような機能もまたシステムを生成する。それぞれの修正は、細かい記述「レコード内のフィールドCの内側のフィールド

    17

    1答えて

    エラー処理とPrismはのは、私はこれらのかなり簡単に使用してオプティクスを表すことができ string2int :: String -> Maybe Int int2string :: Int -> String 変換関数のペアを持っているとしましょう。私は失敗の理由を表現したい場合は stringIntPrism :: Prism String Int しかし、私は2つの別々の機能として