尝试实现 Data.Either
为了帮助我学习 Applicative Functor 和 Functor,我认为了解如何使用类型类 Functor 和 Applicative 实现 Either 会很有趣。显然,我可以继续阅读代…
c++用于删除指针的函子似乎有效
向量中的指针, struct DeleteFromVector { template void operator() ( T* ptr) const { delete ptr; } }; 在其他地方,建议使用以下函数来删除要调…
Haskell 中有态射吗?
我有一些 GADT,它代表 lambda 演算中的一个术语。 data Term a = Var a | Lambda a (Term a) | Apply (Term a) (Term a) 我想做的是有一个用于该类型…
将 3 个函子合并为 1 个
我有 3 个函子,想知道是否可以将它们组合成 1 个,也许作为模板。 是否可以?如果是这样,我会怎么做。谢谢! struct less_than { bool operator()(d…
Lambda 表达式作为类中的成员函子
当 lambda 表达式 (LE) 成为从 4.5.1 开始的 gcc 的一部分时,我感到非常兴奋,并希望他们能够提供一种方法来摆脱 C++ 中那些令人讨厌的函数指针,据…
C++ 如何与 for_each 或 std::transform 一起使用时,函子构造函数会被调用
我以前从未使用过 C++ 函子,所以我只是想了解它们是如何工作的。 例如,假设我们有这个函子类, class MultiplyBy { private: int factor; public: M…
重载基类非虚函数中使用的虚函数
嘿,我正在尝试构建 ConcavePolygon 类的以下成员函子,但由于某种原因,我收到链接器外部符号错误: 无法解析的外部符号“public: virtual void __th…
Haskell 将 Hom Functor/Monad 称为什么?
我想在我的代码中使用它,并且不想重复它,但由于它只涉及大量通用单词,如“函数”或“组合”,我无法通过搜索找到它。 完全具体地说,我正在寻找 in…
是否可以从(函子成员的)函数签名中检索参数类型以在模板中使用?
假设您有一个函子: struct MyFunctor { bool operator ()( int value ) { return true; } }; 是否可以检索函子的成员的参数类型以在模板中使用?以下…