haskell-lens相关内容
我从 https://www.stackage.org/haddock/lts-12.1/lens-4.16.1/Control-Lens-Fold.html 试图弄清楚如何编写一个表达式,使我可以构造以下类型的东西: 将Data.Aeson导入为A功能::(向量A.Value)->(A.Value-> [a])->[一种] 解决方案 有两种镜头功能可用于将与常规 Foldable 相关的
..
这是Json值的定义: -|表示为Haskell值的JSON值.数据值=对象!对象|阵列!阵列|字符串!文本|数字!科学|布尔!布尔|空值推导(Eq,Show)let value =字符串"myValue"寻找=>fromString value =="myValue" ??fromString ::值->文本 我正在寻找一个像我可以从字符串中获取文本而无需进行某些模式匹配的函数,显然,该函
..
我正在尝试构建一个免费的monad(使用 免费 ),其行为类似于StateT单子,但也允许您在基本状态 AppState 上运行单子.我有一个单独的构造器 LiftAction ,其中包含那些类型.这个想法是让 zoom ing Actions保持向下,直到它们到达AppState,AppState可以在其扩展映射内存储不同的状态. 这是我之前使用mtl的尝试(失败):在嵌套状态转换器中移动
..
我一直在愚弄Control.Lens.Indexed中的组合器,尤其是 iconcatMapOf .另外,请注意, members 会使用 AsValue 实例遍历类型,并且 Object 没有此类实例,因此我们需要将其包装到值. 导入合格的Data.Aeson作为Aeson导入Control.Lens导入Data.Aeson.Lens导入Data.Textfunc :: Aeson.Objec
..
lens 提供
..
我有一个类型,其内部详细信息是隐藏的.我想提供一种可以在特定索引处读取上述类型元素的镜头,但不可以对其进行修改.我的类型的Ixed实例似乎没有执行我想要的操作,因为它明确允许修改(尽管不允许插入或删除).我不确定是否要允许只读索引. 解决方案 如果要定义只读镜头,则应使用Getter类型.让我们首先考虑一个简单的例子.您可以使用^?和ix函数按索引访问元素. λ: [1..] ^?
..
我一直在阅读本文和在他们的部分内容之一是: 镜头向后组合.我们不能让(.)表现得像函数吗? 您是对的,我们可以.我们并非出于各种原因,但是 直觉是正确的.镜头应该像功能一样组合.一 重要的是id可以在-之前或之后 可以与任何镜头组合在一起而不会影响它. Lenses向后合成是什么意思? 另外,这是什么意思:我们不能使(.)的行为类似于函数吗? (.)是一个函数,通过与
..
我有这些类型(还有更多): data Player = PlayerOne | PlayerTwo deriving (Eq, Show, Read, Enum, Bounded) data Point = Love | Fifteen | Thirty deriving (Eq, Show, Read, Enum, Bounded) data PointsData = Points
..
我有兴趣为我的monad变压器堆栈获取 zooming 功能,该功能的定义如下: newtype Awesome a = Awesome (StateT AwesomeState (ExceptT B.ByteString IO) a) deriving (Functor, Applicative, Monad , MonadIO, MonadError B.Byt
..
我一直在与Aeson和镜头包装(lens-aeson,从核心镜头包装迁移而来)一起玩,并且一直在努力让他们一起工作. 作为一个玩具示例,我有一个类型: data Colour = Yellow | Green | Blue 和FromJSON实例: instance FromJSON Colour where parseJSON (String s) = return
..
我想稍微玩一下Lens库.我已将其加载到GHCi中,并创建了带有适当下划线的记录数据类型: > data Foo a = Foo {_arg1 :: Int, _arg2 :: [a]} 我想使用makeLenses模板制作用于Foo的镜头.我想这样做,而无需阅读整个 Template-Haskell文档. 我可以在GHCi提示符下键入什么咒语才能使它起作用? 解决方案 在
..