monads 相关问题

编程中的monad是可组合的计算描述。 Monads是Haskell等函数式编程语言中的重要构造。

为什么 ArrowApply 是证明与 Monad 等价性时唯一的选择?

在这个问题下,leftaunabout 留下了非常清晰的解释,为什么我们实际上认为 ArrowApply 和 Monad 是等价的。 这个想法是在往返过程中不丢失任何信息: arrAsFunc...

回答 1 投票 0

我们不应该使用单子绑定来使用循环写下 mfix 的情况

我一直在尝试使用Control.Arrow.loop 写下mfix。我提出了不同的定义,并想看看哪一个是 mfix 的实际工作方式。 所以,我认为的解决方案是......

回答 1 投票 0

是否可以将 Arrows 写为 join,而不是 ArrowApply?

我尝试写下 joinArr :: ??? a => a r (a r b) -> a r b。 我想出了一个使用应用程序的解决方案,因此将范围缩小到 ArrowApply 的范围: joinArr :: ArrowApply a => a r (a r...

回答 1 投票 0

f, g, h :: Kleisli ((->) e) a b <=> f >>> (g &&& h) = (f >>> g) &&& (f >>> h)?

编辑:如果存在这样的函数f:p = arr f,我们将称箭头p为纯箭头。 我正在尝试更好地掌握 Haskell 中的 Arrows,并且我想弄清楚何时 f >>> (g &&&am...

回答 1 投票 0

这种请求-响应类型有标准抽象吗?

我有以下类型: 数据 S req rsp = 完成 rsp |下一个请求(rsp -> S 请求 rsp) 这个想法是将其用作网络通信的纯粹表示,即: ... 接下来 GetUser $ \uid ->...

回答 2 投票 0

我们可以为 WrappedArrow 定义一个 Monad 实例吗?

WrappedArrow 是 Applicative 的一个实例,但它可以成为 Monad吗(可能如果箭头是 ArrowApply)? 实例 ArrowApply a => Monad (WrappedArrow a b) 其中 回归=纯净 (>>...

回答 2 投票 0

我可以为 IO Monad 拍摄“快照”吗?

我目前正在编写一个基于 Arrows(即永恒)的 FRP 库。然而,我遇到了一个问题: 如果我将 IO 操作包裹在箭头内,(在本例中为 Signal s IO a b,这是一个 Kleisli

回答 1 投票 0

带有 Python 或 JavaScript 代码的 monad 和箭头的简单示例?

假设我们有以下两个函数: getTweetsForUser(句柄,回调) 和 ExpandShortLink ( stringHasLink, 回调 ) 请展示我们如何将这些组成: 一个单子和 一个箭头

回答 1 投票 0

将 Monad 表示法转换为 Arrow 表示法

我正在尝试理解箭头表示法,特别是它如何与 Monad 一起使用。通过 Monad,我可以定义以下内容: f = (*2) g = 只是 5 >>= (返回 . f) g 只是 10 我该怎么办...

回答 2 投票 0

如何将 Kleisli 箭头与 monad 一起使用?

在 Haskell Control.Arrow 文档中,它讨论了 Kleisli 箭头与 monad 的关系,但对我来说如何使用它并不明显。我有一个我认为适合箭头的函数,除了......

回答 4 投票 0

来自 Free 和 MonadFree 的箭头

如何从 Free 和 MonadFree 创建箭头? 类 (Functor f, Monad m) => MonadFree f m 其中 ... 数据 Free f a = Impure (f (Free f a)) |纯a MonadFree 包含 2 个参数 m 和 f ,...

回答 1 投票 0

Arrow 和 Monad,两个独立的视点来组成计算?

我在 Monad.Reader#13 中阅读了 Brent Yorgey 的“The Typeclassopedia”,发现“Functor hierachy”与“Category hierachy”是相互依赖的,如图 1 所示。 并且根据...

回答 1 投票 0

是否有可以像自动机一样使用的单子?

我正在编写一个从某些输入数据类型到输出数据类型的流转换器。输入是由用户进行的,因此事件之间有一些时间间隔。因为每个输入都需要一些资源负载...

回答 1 投票 0

这个单子解析器会导致空间泄漏吗?

我正在阅读箭头教程。 https://en.wikibooks.org/wiki/Haskell/Understanding_arrows#Avoiding_leaks。 读这部分我很困惑 视唱练耳 :: 解析器字符字符串 视唱练耳 = 字符串 &quo...

回答 1 投票 0

MonadPlus 和forever - 有什么关系?

我看到这里 -- 请注意,“永远”不一定是非终止的。 -- 如果操作位于 @'MonadPlus'@ 中,并且在一定次数的迭代后发生短路。 ——然后@'永远'@实际上

回答 2 投票 0

写一个 Monad Transformer,真的需要这么多硬编码实例吗

我是 Monad Transformer 的长期用户,也是第一次 Monad Transformer 编写者......而且我觉得我做了一些不必要的事情。 我们正在开发一个具有多个数据库表的项目,并且很难...

回答 1 投票 0

如何在python中参数化通过@classmethod实例化的类的类型

我正在尝试定义一个通用基类,它可以像这样实例化自身的包装实例 从输入导入 Callable、TypeVar、Generic T = 类型变量(“T”) U = TypeVar("U"...

回答 1 投票 0

如果你违反了单子定律,你会发生什么?

编译器或库的更“本机”部分(IO 或可以访问黑魔法和实现的函数)是否对这些定律做出假设?打破它们会导致

回答 3 投票 0

为什么我在 OCaml 中的小 monad 无法编译?

我正在 OCaml 中学习 Monad,但它无法编译。 我减少了代码以最简单的方式重现问题: 文件 try.ml: 模块类型 TRY = sig 输入 'a t 值返回:'a -> 'a t 结尾 莫...

回答 1 投票 0

类型化函数式编程中的模式 Option[Future[Int]] 转换为 Future[Option[Int]]

我发现自己在使用 Scala 时遇到的一个常见情况是以下流程: 阅读一些返回选项的 props 在未来使用道具 对未来的结果做一些改造,...

回答 3 投票 0

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