我希望在不运行它们的情况下将 Writer Monad 列表从猫折叠到一位大作家。 例如:import cats.data.Writer import cats.instances.vector._ import cats.instances.list._ import cats.instances ...
我希望在不运行它们的情况下将 Writer Monad 列表从猫折叠到一位大作家。 例如:import cats.data.Writer import cats.instances.vector._ import cats.instances.list._ import cats.instances ...
问题在底部以粗体显示。 LYAH 给出了在Writer monad 中使用do表示法的示例import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = writer (x, ["numbe ...
我有模块: 我试图编写batchLog函数,但编译器说: 所以,为什么我需要定义任何其他的 Monad。 我已经有instance (Monoid w) => Monad (Writer w)和instance (Semigroup a, Num a) => Monoid (Fo ...
我创建了一个类型 type ResultLog = Writer[List[String], Option[Double]] 我的名为process函数希望在Input列表上工作并返回ResultLog : Input是一个案例类: 我得到的是这些编译器错误: ...
我正在从“Learn you a Haskell for Great Good”教程中学习 Haskell,并且我已经学习了关于writer monads的部分。 这是我无法弄清楚的示例。 我试图了解do块返回的Writer wa monad 中的幺半群值w是如何改变的。 本教程没有详细介绍ma ...
我有以下代码: 我想在处理的每个阶段添加日志记录-因此,我需要介绍writer monad并将其与monad转换器OptionT堆叠在一起。 你能建议如何做到吗? ...
我正在使用Writer monad跟踪任意值(例如Int )上的错误(“冲突”)标志。 一旦设置了标志,它就是“粘滞的”,并将其自身附加到由于任何带有标记的操作而产生的所有值。 有时碰撞标志与各个值相关联,有时我想与诸如列表之类的复合结构相关联。 当然,一旦为整个列表设置了碰撞标志,就 ...
我试图使用Monad变形金刚两次嵌套作家monad。 这是一个草图: foo函数无法编译,因为我需要在Struct monad上使用tell ,而不是Collision 。 有可能吗? ...
我正在研究Writer monad,并具有以下内容: 错误: 为什么使用会出现此计算错误. 而不是$ ? 也许我对功能组成的理解不正确? ...
我现在正在学习Writer monad,但不确定在do块中同时读取monad的值和累加器是否正确。 例如,在下面的coltzSeq函数中,我想读取Array累加器的长度作为该函数的最终计算。 是否有可能这样做或不正确使用Writer? 显然,我可以让调用者读取最终数组的长度,或者可以使用S ...
我完全陷入困境,我觉得我现在可以使用一些帮助,只是为了保持理智。 我想要一些简单的东西,比如为返回Maybe的函数添加日志记录功能,但无论我怎么努力,我都无法获得正确的类型。 这是(我认为)我能得到的最接近的: 这仍然导致我输入错误: 我应该如何调整代码以使其编译和工作? ...
我正在尝试设计嵌入式语言,其中操作可以根据值引发某些标志。 我预见到对标量值和向量(例如,地图,折叠等)的操作。我的想法是使用Writer Monad来跟踪标志。 简化示例,其中实际类型为“ Int”,并且如果参数中的任何一个为0,则引发标志。 我几乎不确定什么是实现此目标的最佳方法 ...
这是我先前问题的跟进 假设我需要验证这样的XML: 我需要确保根元素具有标签a并且也依次具有子元素<a1>xxx</a1> , <a2>yyy</a2>和<a3>zzz</a3> 。 我想使用List[S ...
让我们在\\/上定义一个Kleisli : 以及一个用于测试目的的特殊功能: 功能组合工作顺利: 我想添加日志记录: 这似乎有所期望的行为: 光滑。 但是,我正在努力组建一个运营商: 结合WriterT应用>>>的值 ...
我正在《 Learn a A Haskell》一书中学习作家Monad。 这是一段代码: 运行multWithLog ,结果如下: 在这行上: 很容易看到a = 3和b = 5 ,因为它们都在return函数上相乘。 我不明白的是为什么这些值是3和5 。 a ...
假设我有一些函数Int => Int由andThen组成: 现在我还需要返回中间结果。 所以我可以将所有这些函数转换为Int => (List[Int], Int) ,其中列表包含参数。 我可以使用scalaz Writer[List[Int], Int]来表示对(L ...
看完RúnarBjarnason发人深省的视频“价格合理的Monad的可组合应用程序体系结构”后,我开始在Scalaz中编写视频中提供的示例。 当为Interact App实现基于作者的解释器时,我有些惊讶。 这是代码, 当我尝试将ConsoleW提升为用于交互免费Monad的解释器 ...
有一个伟大的教程在这里 ,这似乎暗示,我认为作家单子基本上是做代表的工作的特殊情况,元组对象(A,B)。 作者在左边积累了值(即A),并且A与它有相应的Monoid(因此它可以累积或改变状态)。 如果A是一个集合,那么它就会累积。 State Monad也是一个处理内部元组的对象。 ...
注意我只是想了解下面这段特定代码中发生的事情。 我知道这可能不是解决问题的最佳方法。 我试图将懒惰的Writer monad与已记忆的fibonacci函数一起使用,以计算该函数被调用的次数。 该函数快速返回正确的值,但Writer环境从不返回且不使用任何CPU或内存。 有人可 ...
到目前为止,我发现: 给出>>=定义并return 官方代码在哪里? ...