编程中的monad是可组合的计算描述。 Monads是Haskell等函数式编程语言中的重要构造。
如何在 Haskell 中编写 Monad 来高效地跟踪和预取 i18n 键?
我正在尝试编写一个 Monad 来跟踪一段代码正在使用哪些 i18n 键。这个想法是预先以有效的方式预取所有这些键的值,而不是最终...
我是 Haskell 新手,正在学习如何使用 Haskell 编写编译器。我使用如下所示的 monad 语法在“Monadic Parser Combinators”中重写了这些代码。一切似乎都运转良好...
首先声明我对 Monad 的理解还很幼稚。我在这里阅读了有关 Monad 的各种帖子,并对这个概念进行了几个小时的研究。我几乎感觉不舒服...
我正在尝试掌握“Scala 方式”工作的窍门,所以我想知道下面的代码是否是在这种情况下应该如何完成的事情。 所以我有实体 User 和 Company (用 LiftWeb 映射
我编写了以下函数(使用这些库): import Control.Applicative(替代 ((<|>)),可选) 导入数据。这些(这些(..)) asumThese :: (替代 f, Monad f) ...
在《Stack Safety for Free》一文中,Phil Freeman 定义了 MonadRec 类型类,如下所示。 类 (Monad m) <= MonadRec m where tailRecM :: forall a b. (a -> m (要么 a b)) -> a -> ...
如何处理 Monad、Functor 和 Applicative 来编写有状态代码
我正在尝试在 Haskell 中编写一些有状态代码。为此,我遵循了这份材料。此时,我已经了解了 monad 和 functor,粗略地说,我很困惑,无法编写程序......
我正在尝试使用 Haskell St monad,但是不幸的是,我不明白如何将纯函数和这个 monad 结合起来。以下是需要计算单词中单个单词的程序示例...
C++ 中的函数式编程,第 214 页,参考与 Haskell 的 Either 相同的预期 monad,内容如下 [...] 一旦您绑定的任何函数返回...
如何在Lean4中定义free monads和cofree comonads?
在 Haskell 中我们可以这样定义这两个: 数据 Free (f :: Type -> Type) (a :: Type) = Pure a |自由(f(自由f a)) 数据 Cofree (f :: Type -> Type) (a :: Type) = Cofree a (f (Cofree ...
为什么`let fmap f = id >=> (好吧<< f)` work?
问如何在F#中使用fish(>=>、Kleisli组合)运算符实现map?几个小时前,'kaefer 的回答让我大吃一惊: 让 fmap f = id >=> (好的 << f) It is
为什么`let fmap f = id >=> (好吧<< f)` work in F#?
问如何在F#中使用fish(>=>、Kleisli组合)运算符实现map?几个小时前,'kaefer 的回答让我大吃一惊: 让 fmap f = id >=> (好的 << f) It is
如何在F#中使用fish(>=>、Kleisli组合)运算符实现`map`?
我正在通过 Scott Wlaschin 的面向铁路的编程帖子学习一元组合。一旦定义了bind、switch和>=>函数,他就引入了map来展示如何“转一个...
我刚刚重新发明了一些单子,但我不确定是哪一个。它允许您对计算步骤进行建模,因此您可以交错进行大量计算的步骤,以找出哪一个首先完成。 {-# 郎...
Functor 和 Monads,有没有人对 scala 中的这个主题有很好的解释?
是否有任何资源可以帮助您更好地理解函子和单子。请分享您对函数式编程中的概念有深入了解的资源...
什么是最简单但最优雅的方法来不短路并收集错误直到使用它们的值? 积累错误有什么难的?仅当函数调用重新时才短路...
如果这是 FP 的基本问题,请原谅我。让我们考虑可选单子。我知道我可以使用 map 将一个可选值转换为另一个基于函数的可选值(如果可选,则将调用该函数......
哎呀!我正在学习 Scala,并正在阅读《Scala 函数式编程》一书。我一直在玩,发现自己处于这样的情况:我希望能够转动
Haskell 在使用序列运算符后无法推断 monad 的返回类型
以下代码 导入 Control.Monad.Writer 类 Foo c 其中 fromInt :: Int -> c 实例 Foo [Int] 其中 fromInt n = [n] 实例 (Monoid c, Foo c) => Foo (Writer c ()) 其中...
C++23的Optional::transform和Optional::and_then有什么区别?
C++23 添加了一些关于可选值的“一元式”功能,作为可选方法: 可选::and_then()(并忽略其限定符): 模板