31得票4回答
在Java中理解函数对象或者叫functor的帮助

有人可以解释一下什么是函数对象,并且提供一个简单的例子吗?

30得票2回答
C++中的函数指针与仿函数

使用函数对象和函数指针有什么区别呢?以此为例: //Functor struct add_x { int x; add_x(int y):x(y){} int operator()(int y) { return x+y; } ...

30得票4回答
“Const”应用函子有什么用途?

我刚在Control.Applicative的文档中发现了Const,但是我很难理解它在哪些情况下有用,相比直接使用Monoid。 我错过了什么吗?

29得票1回答
为什么当“X”定义为指向函数的转换时,“X x; x();”是允许的,但当它定义为将转换到仿函数时,则不允许?

void f(int){} typedef void (*f_ptr)(int); struct Functor{ void operator()(int){} }; struct X{ operator f_ptr(){ return f; } }; struct Y{ o...

29得票2回答
Applicative/Monad实例在多大程度上是唯一确定的?

正如这个问题/答案所描述的,如果存在Functor实例,则其是唯一确定的。 对于列表,有两个众所周知的应用实例:[]和ZipList。因此,Applicative不是唯一的(还请参见 GHC能为monad transformer派生出Functor和Applicative实例吗?和 为什么没...

29得票4回答
两个Functor组合是什么意思?

Haskell Typeclassopedia Section 3.2的第5题要求证明或反例以下语句: 两个Functor的组合也是一个Functor。 起初,我以为它是在谈论将两个不同实例的Functor的fmap方法进行组合,但这似乎不合理,因为就我所知,类型无法匹配。对于两种...

29得票4回答
何时使用函数对象而不是lambda表达式

在何种情况下创建一个函数对象比使用lambda表达式更合适? 我知道我的问题与何时使用lambda而不是函数对象的问题实质上是相反的,但我无法想象在实践中存在一种情况,其中函数对象会优先于lambda。 你有什么想法吗?

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

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

28得票7回答
重载“函数调用”运算符有什么用处?

我最近发现在C++中可以重载"函数调用"运算符, 这种方式看起来很奇怪,因为你需要写两对括号才能这样做:class A { int n; public: void operator ()() const; }; 然后像这样使用:A a; a(); 什么时候这个有用?

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

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