gpt4 book ai didi

haskell - 如何使用镜头库进行snoc?

转载 作者:行者123 更新时间:2023-12-02 16:17:54 25 4
gpt4 key购买 nike

我被难住了again在尝试使用 Edwards lens 库时。我尝试将某些东西 snoc 放到状态上下文中向量的末尾:

data Foo = Foo {
_vec :: Vector Int
}

makeLenses ''Foo

testCons x = vec <>= singleton x

虽然这有效,但我想使用[cons][2],但我不知道如何使用。文档提到 [0,1,2] |> 3 === [0,1,2,3] 但我不知道如何在状态上下文中执行此操作。

最佳答案

(%=) 组合器可让您将函数应用于镜头的目标;你想要类似的东西

stateSnoc :: MonadState Foo m => Int -> m ()
stateSnoc x = vec %= (|> x)

关于haskell - 如何使用镜头库进行snoc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com