monads 相关问题

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

如何在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

难以在所有值上定义单子

我试图编写将所有数据节点乘以给定数字的 monad。 我不知道如何正确定义 Monad。 模块主要在哪里 数据 LinkedList a = NodeWithoutNext a |节点a(链表...

回答 1 投票 0

Haskell:如何进行循环

我要读n遍然后把它全部放在一个列表里。我有以下代码,但它不起作用。任何 Haskell/函数专家可以给我一个启发吗? 复制IO n a = do y <- a ...

回答 2 投票 0

函数式编程的 Monad,2.2 变体一:异常

我一直在努力更好地理解 Haskell 中的 Monad,所以我开始阅读 Philip Wadler 的论文《Monads for functionprogramming》。为了更好地内化原理......

回答 2 投票 0

然后状态 Monad (>>)

我想知道 Haskell 状态单子 >> 的定义。 据我猜测,它将一种状态传递到另一种状态: (>>) :: 状态 s a -> 状态 s b -> 状态 s b 注明 >> 斯塔...

回答 2 投票 0

或者内部 Maybe 错误处理

是否有 Haskell 模式可以避免编写此自定义函数?这个想法是将 Maybe 中的 Nothing 作为错误处理(作为包装 Either 的一部分): 要么MaybeHandle :: Str...

回答 4 投票 0

如何在 Haskell 中枚举递归数据类型?

这篇博文对如何使用 Omega monad 对角枚举任意语法进行了有趣的解释。他提供了一个示例来说明如何做到这一点,从而产生无限序列

回答 4 投票 0

如何在链接MapReduce过滤器时减少迭代?

我读了很多关于map、reduce和filter的文章,因为它们在react和FP中的使用量很大。如果我们写这样的东西: 让 myArr = [1,2,3,4,5,6,7,8,9] 让

回答 5 投票 0

如何使用 Monad 的 (->) 实例以及关于 (->) 的困惑

在不同的问题上,我在评论中找到了有关使用 Monad 的 (->) 实例的提示,例如实现无点风格。 对于我来说,这有点太抽象了。好的,我看到了箭头

回答 2 投票 0

难以理解带有嵌套 `fmap` 的 Haskell 类型统一

我在查看免费 monad 时遇到了这个问题,但已将其简化为一个更小的示例。 在 Haskell 中,我们有以下类型: fmap :: 函子 f => (a -> b) -> f a -&g...

回答 1 投票 0

为什么这个 Haskell 类型签名会神奇地改变?

我在查看免费 monad 时遇到了这个问题,但已将其简化为一个更小的示例。 在 Haskell 中,我们有以下类型: fmap :: 函子 f => (a -> b) -> f a -&g...

回答 1 投票 0

是否可以在 OCaml 中编写递归单子解析器? [已关闭]

假设我们要解析这样的表达式: 指数 := 多 Mul := 添加 {'*' 添加} 添加 := 文字 {'+' 文字} 文字 := 数字 | '('Exp')' 在 Haskell 中,我们可以编写一个解析器,例如 exp = mu...

回答 1 投票 0

是否可以编写像 Haskell 中一样干净的 Monadic 解析器?

假设我们要解析这样的表达式: 指数 := 多 Mul := 添加 {'*' 添加} 添加 := 文字 {'+' 文字} 文字 := 数字 | '('Exp')' 在 Haskell 中,我们可以编写一个解析器,例如 exp = mu...

回答 1 投票 0

Haskell 链表 Monad

我正在尝试在 haskell 中为链表枚举数据类型编写 Monad,但我不明白为什么我的绑定函数 (>>=) 在 ghci 中出错。 数据 LL a = 哨兵 |节点 a (LL a)

回答 1 投票 0

如何理解 Monad 中的 <- in Haskell's do notation with an uncommon ">>=" 实现?

我是一名 C++/Rust 程序员,出于好奇,我目前正在学习 Haskell。正如所料,我在尝试理解 Monad 时遇到了一些障碍: 我已经读过定义...

回答 1 投票 0

从 [Maybe a] 中提取第一个 Just 值

假设我有一个如下列表: [没什么,只是1,没什么,只是2] 我想获得第一个Just(非错误)值;在这种情况下,它只是 1。我唯一能想到的是: FirstJust xs = 案例过滤器

回答 3 投票 0

liftM2 如何像 Haskell 中的 S' 组合器一样工作?

我正在观看 code_report(链接)的视频,其中他提到 liftM2 的工作原理就像组合逻辑中的 S' 组合器。在他的示例中,他计算了数组的最小/最大元素并取...

回答 1 投票 0

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