7得票1回答
为什么 (a, a) 不是一个函子?

我写了下面的快速排序实现: 可能是重复问题: 使 (a, a) 成为一个函子 以下是快速排序的实现: import Data.List (partition) quicksort [] = [] quicksort (x:xs) = let (smaller, notSm...

19得票5回答
ML函数子是否可以完全编码在.NET (C#/F#) 中?

ML的functor能否通过.NET接口和泛型实现?是否有高级ML functor使用示例违反这种编码方式? 答案概要: 一般情况下,答案是否定的。ML模块提供了一些功能(例如通过签名共享规范[1]),这些功能不能直接映射到.NET概念。 然而,在某些用例中,ML的习惯用法可以被翻译。这...

12得票2回答
我无法理解维基百科对“可应用函子”的定义。

在学习Haskell中的函子、应用函子和单子时,我在Wikipedia上找到了这个定义: 在函数式编程中,特别是Haskell中,一个应用函子是一种类似于单子(return,fmap,join)但没有join,或者类似于一个带有return的函子的结构。 我不理解:我觉得仅提供return...

27得票3回答
这个函子的特性是否比单子更强大?

在思考如何一般化单子时,我想出了一个关于函子F的以下特性: inject :: (a -> F b) -> F(a -> b) -- 应该在a和b中都是自然变换。 在没有更好的名称的情况下,如果存在如上所示的自然变换inject,则称函子F为可绑定的(bindabl...

17得票1回答
OCaml 函数生成器,Haskell 类型类和多重派生

众所周知,OCaml具有参数多态性,这导致了一些限制。Haskell通过其类型类提供了一种特殊的多态性,显然在某些情况下非常方便。同样众所周知,OCaml的模块和函数系统允许创建一种特殊的多态性。例如,可以参考Simon Shine最近的回答(点击这里)。 我的观点是,在Haskell中可以...

8得票2回答
检测函数对象(functor)和Lambda表达式的特征

我该如何检测零元和一元函数指针、std::function对象和functor(包括lambda)的返回类型和参数类型? Boost的function_traits和functional traits并不能完全满足我的需求,但我可以考虑补充或替换它们。 我可以尝试像这样做: namesp...

16得票1回答
哪些 Haskell 函子等同于 Reader 函子

一些 Haskell 函子 F a 显然是与某些类型 T 的 T -> a 同构的,例如: data Pair a = Pair a a -- isomorphic to Bool -> a data Reader r a = Reader (r ->...

7得票2回答
Functor的Product和Coproduct的有用应用

你能展示一个简单的代码示例,说明如何使用 Data.Functor 的 Product 和 Coproduct 实现有用的应用吗?

11得票2回答
复数函子和单子的含义和用法是什么?

当我阅读 GHC 的 Data.Complex 模块中 Applicative Complex 和 Monad Complex 实例的源代码时,感到有些惊讶: -- | @since 4.9.0.0 instance Applicative Complex where pure a = ...

29得票2回答
“派生函子”是什么意思?

我正在试图弄清楚在Haskell中派生Functor的规则是什么。 我看过有关它的消息发布,也看过测试代码,但我似乎找不到官方文档说明规则是什么。请问有人可以澄清并/或指导我正确的地方吗?