haskell-lens相关内容

通过镜头折叠或连接Aeson阵列

我从 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 相关的 ..
发布时间:2021-05-13 20:47:54 其他开发

从不带模式匹配的JSON值字符串文本中提取文本

这是Json值的定义: -|表示为Haskell值的JSON值.数据值=对象!对象|阵列!阵列|字符串!文本|数字!科学|布尔!布尔|空值推导(Eq,Show)let value =字符串"myValue"寻找=>fromString value =="myValue" ??fromString ::值->文本 我正在寻找一个像我可以从字符串中获取文本而无需进行某些模式匹配的函数,显然,该函 ..
发布时间:2021-05-13 20:46:23 其他开发

在免费Monad上缩放实例

我正在尝试构建一个免费的monad(使用 免费 ),其行为类似于StateT单子,但也允许您在基本状态 AppState 上运行单子.我有一个单独的构造器 LiftAction ,其中包含那些类型.这个想法是让 zoom ing Actions保持向下,直到它们到达AppState,AppState可以在其扩展映射内存储不同的状态. 这是我之前使用mtl的尝试(失败):在嵌套状态转换器中移动 ..
发布时间:2021-05-13 20:46:08 其他开发

我应该用什么镜头来建立按索引的只读吸气剂?

我有一个类型,其内部详细信息是隐藏的.我想提供一种可以在特定索引处读取上述类型元素的镜头,但不可以对其进行修改.我的类型的Ixed实例似乎没有执行我想要的操作,因为它明确允许修改(尽管不允许插入或删除).我不确定是否要允许只读索引. 解决方案 如果要定义只读镜头,则应使用Getter类型.让我们首先考虑一个简单的例子.您可以使用^?和ix函数按索引访问元素. λ: [1..] ^? ..
发布时间:2020-11-22 07:50:19 其他开发

镜头:在镜头上下文中向后构成(.)

我一直在阅读本文和在他们的部分内容之一是: 镜头向后组合.我们不能让(.)表现得像函数吗? 您是对的,我们可以.我们并非出于各种原因,但是 直觉是正确的.镜头应该像功能一样组合.一 重要的是id可以在-之前或之后 可以与任何镜头组合在一起而不会影响它. Lenses向后合成是什么意思? 另外,这是什么意思:我们不能使(.)的行为类似于函数吗? (.)是一个函数,通过与 ..
发布时间:2020-11-22 07:49:17 其他开发

镜头:变焦新型

我有兴趣为我的monad变压器堆栈获取 zooming 功能,该功能的定义如下: newtype Awesome a = Awesome (StateT AwesomeState (ExceptT B.ByteString IO) a) deriving (Functor, Applicative, Monad , MonadIO, MonadError B.Byt ..
发布时间:2020-11-22 07:24:33 其他开发

如何从GHCi中的记录制作镜头

我想稍微玩一下Lens库.我已将其加载到GHCi中,并创建了带有适当下划线的记录数据类型: > data Foo a = Foo {_arg1 :: Int, _arg2 :: [a]} 我想使用makeLenses模板制作用于Foo的镜头.我想这样做,而无需阅读整个 Template-Haskell文档. 我可以在GHCi提示符下键入什么咒语才能使它起作用? 解决方案 在 ..
发布时间:2020-11-14 18:36:37 其他开发