“确实” Haskell 中的惰性 IO
考虑片段 - getLine >>= \_ -> getLine >>= putStr 它做了合理的事情,两次请求字符串,然后打印最后一个输入。因为编译器无法知道 getLine 有什么外…
何时使用 Haskell monad
我正在 Haskell 中实现一种组合优化算法: Given an initial candidate solution, repeat until stopping criteria are met: 1. Determine possible m…
这种类似 monad 的函数式编程模式的名称是什么?
我偶尔会在代码中遇到类似于 monad 的模式,但是 不能在 >>= 之间保持一致的类型。 这是我能想到的最简单的例子:( 首先是一些类型级布尔值 data TyT…
跟踪 ST monad 中函数之间的多个引用的好方法吗?
我正在编写一些代码(Metropolis-Hastings MCMC 采样器),它将使用随机数生成器,并基于此修改数组和可能的其他结构。 我最初的想法是使用 ST monad…
ArrowLoop 是如何工作的?另外,mfix?
我现在对箭头机械的其余部分相当满意,但我不明白循环是如何工作的。这对我来说似乎很神奇,但这不利于我的理解。我也很难理解 mfix。当我查看在 proc…
在haskell中处理IO值
我正在 Haskell 中编写一个带有 IO 操作的小程序 正如 module StackQuestion where import Data.Map (Map, insert, fromList) type Name = String typ…
for..else 对于 Scala 中的选项类型?
假设我有两个选项,如果都是 Some,则执行一个代码路径,如果有注释,则执行另一个。我想做一些类似于 for (x <- xMaybe; y <- yMaybe) { // do somet…
Haskell:是否有比 MArray 更通用的键/值存储类?
我不确定我是否低估了 MArray 与否,但对于我实现的许多算法来说,我关心的是我有一些用于存储键/值对的数据结构。显然,数据结构的选择会影响性能,…
Haskell——双重性格 IO/ST monad?
我有一些代码当前使用 ST monad 进行评估。我不喜欢到处都放置 IO,因为 runST 方法会产生纯结果,并表明这样的结果可以安全调用(与 unsafePerformIO…
二叉树的 Monad 实例
我构建了二叉树: data Tree a = Empty | Node a (Tree a) (Tree a) deriving (Eq, Ord, Read, Show) 如何为这棵树制作 Monad 类型类实例?我可以不做…
Haskell 将 Hom Functor/Monad 称为什么?
我想在我的代码中使用它,并且不想重复它,但由于它只涉及大量通用单词,如“函数”或“组合”,我无法通过搜索找到它。 完全具体地说,我正在寻找 in…
mapMonadTrans :: MonadTrans xT => (ma→nb)→ xTma-> xTnb
问题是这样的。我有: f :: MonadIO m => ReaderT FooBar m Answer; f = (liftIO getArgs) >>= ... 我需要使用修改后的参数来运行它。然而,由于 m 未…