如何评估 Maybe 列表的最佳实践
我正在寻找一个函数,它接受一个函数 (a -> a -> a) 和一个 [Maybe a] 列表并返回 Maybe a。胡格尔没有给我任何有用的东西。这看起来是一个很常见的模…
用于进度跟踪的 Monad 变压器
我正在寻找一个可用于跟踪程序进度的 monad 转换器。为了解释如何使用它,请考虑以下代码: procedure :: ProgressT IO () procedure = task "Print s…
提取 IO 中的 Maybe 值
鉴于以下内容: > (liftM2 fromMaybe) (ioError $ userError "OOPS") (return $ Just "ok") ghci 给了我 *** Exception: user error (OOPS) 当然,fro…
箭头/HXT 和类型签名
我正在尝试学习 Haskell 中的 Arrow,因此我正在使用基于 XML 的 HXT 库的箭头编写一个简单的应用程序。 HXT wiki 和教程中的示例放弃了函数类型签名…
与 Functor 不同,Monad 可以改变形状?
我一直很喜欢以下关于单子相对于函子的力量的直观解释:单子可以改变形状;函子不能。 例如:length $ fmap f [1,2,3] 始终等于 3。 然而,对于 monad…
Haskell:我是在重新发明 List Monad 吗?
在这里,完整的 Haskell 新手,我很抱歉...... 我正在尝试从另一个序列和生成的最后一个值创建一个值序列(所以对我来说如何使用映射并不完全明显)。…
有什么方法可以恢复足够的懒惰以在单子中喜结连理吗?
我想通过打结来编写一些巧妙的代码(节省我很多时间来实现)。大致是这样的, n <- myinstr n x 理论上,myinstr应该运行x来获取一个值,该值将变成n…
有人看过棘手的 Haskell 练习列表吗?
Closed. This question is seeking recommendations for software libraries, tutorials, tools, books, or other off-site resources. It does not …
Haskell Monad 函数
我正在学习 Haskell 教程,并得到了这段与移动国际象棋中的马有关的代码: import Control.Monad type KnightPos = (Int,Int) moveKnight :: KnightPo…
将 Maybes 映射到 monad 的函数
我经常使用 maybe (return ()) someFunc someMaybe 形式的表达式。 搜索函数 Monad m => (a→m())→也许是-> hoogle 上的 m () 不会产生特定结果。没…
任意 monad 中具有解释器的操作 monad
我正在使用 Heinrich Apfelmus 的 操作 monad。 我想用结果类型的 monad 来参数化解释器。 我的代码的以下版本编译: {-# LANGUAGE GADTs #-} import …
我怎样才能用延续来实现这个 monad 转换器?
动机。我正在尝试创建一个 monad 转换器,并使用特殊指令 f g 表示“重复包含 f g 的整个块,一次使用 f,下一次使用 g代码>”。这旨在用于 DSL 转换…
Arrow和Monad,两个独立的视点来组成计算?
我读过 Brent Yorgey 在 Monad.Reader 中写的“The Typeclassopedia” #13,发现“Functor层次结构”与“Category层次结构”相互依赖,如图1所示。 而…
(>>=) 的执行顺序不是我所期望的
我有一系列网络请求,每个请求都需要 10 秒以上。 为了让用户知道发生了什么,我提供更新: main = do putStr "Downloading the first thing... " {- …