lenses

    10热度

    2回答

    我竭力要弄清楚一个问题与埃宋镜头操纵JSON。我的任务就像在JSON中添加一个键到嵌套对象一样简单。我能够改变现有keyby手段: > :set -XOverloadedStrings > import Control.Lens > import Data.Aeson > import Data.Aeson.Lens > "{ \"a\": { \"b\": 10 } }" & key "

    4热度

    2回答

    假设我有一个像at _一个镜头,需要一些Maybe a: import Data.Map as M m = M.fromList [(1,(2,3))] --set 2nd element m ^. at 1 .~ Just (4,5) --gives fromList [(1,(4,5))] m ^. at 1 .~ Nothing --gives fromList() 现在假设

    10热度

    2回答

    为什么我们需要Control.Lens.Reified?是否有某种原因,我不能将Lens直接放入容器中? reify是什么意思?

    4热度

    1回答

    不好意思,但我甚至不知道如何正确地提出问题。 我该怎么做这个? instPublicIP :: Instance -> Maybe Text instPublicIP inst = inst ^. insNetworkInterfaces ^? ix 0 . iniAssociation . _Just . iniaPublicIP . _Just 这个 instPublicIP'

    1热度

    1回答

    setOwner :: File -> User -> File setOwner f o = f & ownerID .~ (o ^. User.uid) 如何将此变为Setter? 我不能使它成为镜头,因为getUser :: UserID -> IO User是一个不纯的功能。

    1热度

    1回答

    下面是一个例子对Argonaut's lens documentation一个简化版本: import argonaut._, Argonaut._ val obj: Json = Parse.parseOption("""{"a":{"b":"x","c":2}}""").get val lens1 = jObjectPL >=> jsonObjectPL("a") >=>

    6热度

    3回答

    在处理名为AppState的状态时,我想跟踪例如实例的数量。这些实例具有类型InstanceId的不同ID。 因此,我的状态看喜欢这个 import Control.Lens data AppState = AppState { -- ... , _instanceCounter :: Map InstanceId Integer } makeLenses

    0热度

    1回答

    我试图将索引x和y中由ByteString s组成的矩阵中的字符更改为不同的字符。最初,我使用[[Char]]来表示矩阵,所以我可以使用.~从Control.Lens.Setter来更改该值,但这似乎不适用于[ByteString]。 有没有什么办法可以像我现在正在做的那样使用镜头或修改元件而不用unpackByteString? 的代码,现在,就是: render :: [[Char]] ->

    0热度

    2回答

    我有以下的Haskell类型 import Control.Lens import Data.Map.Lens import qualified Data.Map as M type RepoStats = M.Map String (M.Map String RepoStat) data RepoStat = RepoStat { _full_name :: String,

    4热度

    1回答

    单片眼镜的自选具有以下访问功能(Optional[C,A]): getOption: C => Option[A] set: A => C => C 这是在与(部分)非对称透镜数据的原始定义的赔率。我期望: getOption: C => Option[A] setOption: A => C => Option[C] 这是什么原因?如何用Monocle获得经典的部分镜片?在对镜头进行