2 レベルのマップに値を設定したいと思います。つまり、「外側の」マップのキーの値であるマップのキーに設定します。通常の Map の場合、次のようなものを使用できますがm & at 42 ?= "value"
、 2 をネストする方法が見つかりませんでしat
た レンズを使用してそのようなネストされた値を設定する最も簡単な方法は何ですか?
質問する
111 次
2 に答える
3
ユーザーtrapdoorは、より良い解決策があることを示しました-http ://juick.com/qrilka/2602819#19、それはレンズライブラリにあります: non
于 2013-12-04T12:09:09.387 に答える
2
一種の、_Just
利用可能なキーがない場合は操作を行わないプリズムを使用できます。これには、2 層下のキーを作成できないという残念な結果があります。しかし、例として
at2 :: Ord k => k -> k -> IndexedTraversal' k (Map k (Map k v)) (Maybe v)
at2 k1 k2 = at k1 . _Just . at k2
于 2013-12-04T05:43:10.927 に答える