state-monad 相关问题

monad允许将状态信息附加到计算中

关于 Monad Transformer Stack pipeline 中不同步骤的不同要求

我在之前的一个问题中接受的激光聚焦答案既令人费解又具有启发性,就在我重新打开我的 Real World Haskell (多好的一本书!)并决定额外阅读

回答 1 投票 0

在 Haskell 中根据状态过滤列表

我一直在研究 ListT 的实现,以找到一种好方法来做这样的事情: 函数列表=做 设置 <- get -- Data.Set el <- list guard $ Set.notMember el set return el...

回答 1 投票 0

关于选择在何处应用 monad 转换器的 monad 参数

采用 MaybeT monad 转换器: newtype MaybeT m a = MaybeT { runMaybeT :: m (Maybe a) } 我没想到它会有不同的定义,因为 Maybe 只是一个带有 (opti...

回答 1 投票 0

我可以使用 StateT/MaybeT/forever 来消除此 IO 操作中的显式递归吗?

我有一个这样的程序, 开始 :: [Q] -> R -> IO R 开始 qs = 修复 $ ecurse r -> 做 <- select qs (r', exit) <- askQ q r (if exit then return else recurse) r' that

回答 1 投票 0

为了在 a -> ReaderT r IO b 类型的函数中保持状态,我唯一的选择是将 IORef 放入闭包中吗?或者我可以以某种方式使用 StateT 吗?

假设我必须实现一个功能 f :: Foo -> ReaderT Bar IO Baz 我必须传递给消费者(即我将调用 c f) 其中 Foo/Bar/Baz 被强加为函数的使用者,并且

回答 1 投票 0

我可以在 XMobar 中有一个监视器来将一次调用的状态保持到下一次调用吗?

tl;博士 我想我的问题可以归结为是/否问题:“IO monad 只能通过 I/O 操作保持状态吗?”换句话说,我的理解是否正确,如果我必须写一个......

回答 1 投票 0

哈斯克尔。尽管使用了 list-t 的 ListT (State s),但没有看到惰性

我有一个遍历非确定性搜索空间的场景,访问次数有上限。使用 ListT (State Int) a,我已经成功实现了这一点。 我的期望是,ap...

回答 1 投票 0

Haskell 状态 Monad 示例

我正在尝试 Haskell 的 Control.Monad.State,尝试迭代字符串或整数列表,对它们进行计数,然后用整数 0 替换字符串条目。我已经成功了...

回答 1 投票 0

状态 Monad - HASKELL

类型状态 = Int newtype ST a = S (状态 -> (a, 状态)) 数据树 a = 叶 a |节点(树a)(树a)推导(显示) app :: ST a -> 状态 -> (a, 状态) app (S st) s = st s mlabel :: Tr...

回答 1 投票 0

理解 Haskell 中的 RWST

我研究了这个,试图理解几个 Transformer monad 是如何相互作用的,特别是更好地理解 monad 的 lift 和 stacking。 对于在这里找到的 RWST 单子(我...

回答 1 投票 0

在 Haskell 中应用更改到外部 Monad,而不使用 Transformer monad

我正在尝试做类似以下的事情,如果 State-Monad 的状态不满足特定条件,我想返回错误消息,是否可以在不使用 lift 的情况下完成

回答 1 投票 0

ST 的状态是否应该不改变以便由 runST 执行?

类型 ST s a = ST (s -> (s, a)) runST :: (forall s. ST s a) -> a runST (ST f) = case (f realWorld) of (_, a) -> a 仔细看,错误很多,但是整体结构...

回答 1 投票 0

Haskell 中的 MutVar# 是不纯的吗?

现在我正在努力理解 State ST STRef 等。 首先,我调查了 Monad 本身,s -> (s, a)。 我没能在 s -> (s, a) 和 "State&qu...

回答 0 投票 0

在Haskell中,如何区分单项函数定义中的可突变引用与常规变量?

假设你想在Haskell中写一些有状态的函数。你必须使用像这样的单项式。(使用任何状态单元) f :: x -> k -> (ST s) r 所以这意味着本质上...

回答 1 投票 1

实现嵌套的单体类型的Monad实例。

作为 Haskell 自学练习的一部分,我试图为我的类型导出一个 Monad 实例。该类型定义为: newtype ParsePackUnpack f a = ParsePackUnpack { unparse:: 状态...

回答 1 投票 1

获取结果和状态,而不是来自状态Monad的状态

我有这段代码:runState(do {put 5; return'X'})1,结果是:('X',5)。我想在do块中提取结果-'X'和当前状态-5,然后对它们进行处理。但是...

回答 1 投票 1

使用State Monad的树插入

我有一个树,并且插入操作的定义如“为您带来美好的Haskell!” :数据树a =空树|派生(显示,读取,等式)treeInsert的节点a(树a)(树a)::(Ord a)=> a-&...

回答 1 投票 0

在Haskell中,如何在单子函数定义中区分可变/不可变变量

假设您想在Haskell中编写一些有状态的函数。您必须使用这样的单子形式:(使用任何状态的单子)f :: x-> k->(ST s)r因此,这实际上意味着...

回答 1 投票 1

从State切换到StateT后,如何恢复对单子构造的列表的惰性计算?

使用以下代码:(lazy_test.hs)-使用State测试单态构造列表的惰性求值。 import Control.Monad.State nMax = 5 foo :: Int->状态[Int] Bool foo n = do ...

回答 2 投票 1

Haskell State Monad

State Monad的put函数会更新实际状态还是只是返回具有新值的新状态?我的问题是,状态Monad是否可以在...

回答 3 投票 3

© www.soinside.com 2019 - 2024. All rights reserved.