セッターレンズを構成するための構文は何ですか?

与える

私はlensを初めて使用し、このstate0からnew_state2への変換と同等の2つの「セッター」操作を作成したいと思います。

  let new_state1 = field1 %~ (const newVal1) $ state0
  let new_state2 = field2 %~ (const newVal2) $ new_state1

これを行うための構文は何ですか?

Bartek Banachewicz

面白いことに、レンズは関数と同じように構成されてい(.)ます。

setterAB :: Lens' A B
setterBC :: Lens' B C

setterAC = setterAB . setterBC

ただし、あなたの例では、レンズを作成する必要はありません。変換(レンズと実際の操作の両方)を作成する必要があります。これを行うには2つの方法があります。

ああ、実際にそれに到達する前(.~)に、(%~)( "modify")の代わりに( " set")を使用して、コードを少し単純化しましょう

let new_state1 = field1 .~ newVal1 $ state0
let new_state2 = field2 .~ newVal2 $ new_state1

直接、経由&

&かなりうまく機能する派手な演算子があります。それはただflip ($)

let new_state1 = state0 & field1 .~ newVal1
let new_state2 = new_state & field2 .~ newVal2

つまり、次のように書くことができます。

let new_state = 
    state0 
        & field1 .~ newVal1
        & field2 .~ newVal2

単項

さらに良いことに、実際にStateどこかにいる場合は、その通過を完全に取り除き、それをモナドに入れることができます。

let new_state = (flip execState state0) $ do
    field1 .= newVal1
    field2 .= newVal2

それらはで定義されているMonadStateので、モナドスタックにいる場合は、そのインスタンスを直接使用するかStateT、セッターがより多くのエフェクトを利用できるようにするために使用できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

AWS Bitnamiインスタンスを使用してMySQLワークベンチをセットアップするための構成は何ですか?

分類Dev

cssで複数のタグをターゲットにするための構文は何ですか

分類Dev

コントロールパネルの構成レットにタブを作成するための標準的な方法は何ですか?

分類Dev

TCPサーバーレジスタに値を割り当てるためのpymodbus構文は何ですか?

分類Dev

Ionic 3 で小さな構成データを保存するためのエレガントなソリューションは何ですか?

分類Dev

アイテムを定義するためのセレクターの構造は何ですか

分類Dev

HTMLタグ要素を取得するためのxpath構文は何ですか?

分類Dev

タプル定義に末尾のコンマを含めるための構文規則は何ですか?

分類Dev

タプル定義に末尾のコンマを含めるための構文規則は何ですか?

分類Dev

Eloquentコレクションを複数の列で並べ替えるための構文は何ですか?

分類Dev

dbインスタンスを取得するための適切な構文は何ですか?

分類Dev

Cargoで依存関係のバージョンを指定するための構文は何ですか?

分類Dev

logrotate構成ファイルの行をコメントアウトするための構文は何ですか?

分類Dev

Trueのみで構成されたデータセットをトレーニングするにはどうすればよいですか?Pythonで

分類Dev

JQueryでselect-option-selectedのIDセレクターを記述する正しい構文は何ですか?

分類Dev

aurelia のカスタム要素または属性のグローバル構成を提供するために使用されるパターンは何ですか?

分類Dev

マングースイベントを検出するための構文は何ですか?

分類Dev

Pandas DataFramesで論理インデックスまたはブールインデックスを使用するための正しい構文は何ですか?

分類Dev

AWSCLI-パラメータに複数の値を割り当てるための構文は何ですか

分類Dev

Linuxカーネル構成にinsmodを実装するためのオプションは何ですか?

分類Dev

コレクションのコレクションを返すための構文は何ですか?

分類Dev

Javaでの整数を印刷するための構文は何ですか

分類Dev

フィルタを使用してターゲット行をマージ/削除するための構文は何ですか?

分類Dev

配列を構築するためのJavaScriptスプレッド構文に相当するPHPとは何ですか?

分類Dev

ngrxアダプターセレクター構文の意味は何ですか?

分類Dev

mapStructがDTOのスーパークラスのフィールドのマッピングを停止するための構成は何ですか?

分類Dev

Xamarinページを構成しながらデータをフェッチするための最良の方法は何ですか?

分類Dev

次の要素のCSSのセレクターの構文は何ですか?

分類Dev

JDK12でGeneric Arraylistを作成するための構文は何ですか?

Related 関連記事

  1. 1

    AWS Bitnamiインスタンスを使用してMySQLワークベンチをセットアップするための構成は何ですか?

  2. 2

    cssで複数のタグをターゲットにするための構文は何ですか

  3. 3

    コントロールパネルの構成レットにタブを作成するための標準的な方法は何ですか?

  4. 4

    TCPサーバーレジスタに値を割り当てるためのpymodbus構文は何ですか?

  5. 5

    Ionic 3 で小さな構成データを保存するためのエレガントなソリューションは何ですか?

  6. 6

    アイテムを定義するためのセレクターの構造は何ですか

  7. 7

    HTMLタグ要素を取得するためのxpath構文は何ですか?

  8. 8

    タプル定義に末尾のコンマを含めるための構文規則は何ですか?

  9. 9

    タプル定義に末尾のコンマを含めるための構文規則は何ですか?

  10. 10

    Eloquentコレクションを複数の列で並べ替えるための構文は何ですか?

  11. 11

    dbインスタンスを取得するための適切な構文は何ですか?

  12. 12

    Cargoで依存関係のバージョンを指定するための構文は何ですか?

  13. 13

    logrotate構成ファイルの行をコメントアウトするための構文は何ですか?

  14. 14

    Trueのみで構成されたデータセットをトレーニングするにはどうすればよいですか?Pythonで

  15. 15

    JQueryでselect-option-selectedのIDセレクターを記述する正しい構文は何ですか?

  16. 16

    aurelia のカスタム要素または属性のグローバル構成を提供するために使用されるパターンは何ですか?

  17. 17

    マングースイベントを検出するための構文は何ですか?

  18. 18

    Pandas DataFramesで論理インデックスまたはブールインデックスを使用するための正しい構文は何ですか?

  19. 19

    AWSCLI-パラメータに複数の値を割り当てるための構文は何ですか

  20. 20

    Linuxカーネル構成にinsmodを実装するためのオプションは何ですか?

  21. 21

    コレクションのコレクションを返すための構文は何ですか?

  22. 22

    Javaでの整数を印刷するための構文は何ですか

  23. 23

    フィルタを使用してターゲット行をマージ/削除するための構文は何ですか?

  24. 24

    配列を構築するためのJavaScriptスプレッド構文に相当するPHPとは何ですか?

  25. 25

    ngrxアダプターセレクター構文の意味は何ですか?

  26. 26

    mapStructがDTOのスーパークラスのフィールドのマッピングを停止するための構成は何ですか?

  27. 27

    Xamarinページを構成しながらデータをフェッチするための最良の方法は何ですか?

  28. 28

    次の要素のCSSのセレクターの構文は何ですか?

  29. 29

    JDK12でGeneric Arraylistを作成するための構文は何ですか?

ホットタグ

アーカイブ