-
27 votesanswersviews
如何在可变参数模板类中获取函数指针的参数类型?
这是对此问题的跟进:Generic functor for functions with any argument list 我有这个仿函数类(完整代码见上面的链接): template<typename... ARGS> class Foo { std::function<void(ARGS...)> m_f; public: Foo( std::fu... -
1 votesanswersviews
如何将可变参数成员函数绑定到仿函数?
我试图使用std :: bind绑定可变参数函数的第一个参数,然后将返回的仿函数传递给boost :: signals2 :: signal的connect()函数 . 只要可变参数函数不是成员函数,该过程就可以正常工作 . 这是我希望能够做到的: class test { public: test() {} void call_var_callback(string const&... -
18 votesanswersviews
Functor实例是唯一的吗?
我想知道Haskell中的 Functor 实例在多大程度上是由算子法确定的(唯一的) . 由于 ghc 可以为至少"run-of-the-mill"数据类型派生 Functor 实例,因此它们似乎必须至少在各种情况下都是唯一的 . 为方便起见, Functor 定义和仿函数法则是: class Functor f where fmap :: (a -> b) -&g... -
12 votesanswersviews
我可以't understand Wikipedia'定义“applicative functor”
在Haskell中学习仿函数,应用函子和monad,我在Wikipedia找到了这个定义: 在函数式编程中,特别是Haskell,一个applicative functor是一个结构,就像一个没有连接的monad(return,fmap,join),或者像带有return的functor . 我无法理解:在我看来,将 return (即 pure )提供给仿函数并不足以获得一个应用仿函数,因为... -
0 votesanswersviews
Monad“拆箱”
我按照教程Functors, Applicatives, And Monads In Pictures及其JavaScript version来提出问题 . 当文本说functor从上下文中解开值时,我理解发生了一个 Just 5 - > 5 转换 . 根据What does the "Just" syntax mean in Haskell?,只是 Maybe 的... -
209 votesanswersviews
在函数式编程中,什么是函子?
我在阅读各种关于函数式编程的文章时,曾几次尝试Functor,但作者通常认为读者已经理解了这个术语 . 在网上浏览提供了过多的技术说明(请参阅Wikipedia article)或令人难以置信的模糊描述(请参阅此处ocaml-tutorial website上的Functors部分) . 有人可以友好地定义术语,解释它的用法,并提供一个如何创建和使用Functors的例子吗? Edit :虽然我对... -
42 votesanswersviews
仿函数和endofunctors之间的差异
有人可以简单地解释两者之间的区别吗?我并没有完全理解monad是endofunctor而不仅仅是functor的部分 . -
1 votesanswersviews
在Haskell中的ApplicativeDopragma和Applicative Functor
Functor, Applicative, and Monad的一个例子略有变化: {-# LANGUAGE ApplicativeDo #-} import Safe (readMay) -- import Control.Applicative ((<$>), (<*>)) displayAge maybeAge = case maybeAge of ... -
737 votesanswersviews
什么是C仿函数及其用途?
我一直听到很多关于C语言的玩家 . 有人可以给我一个关于它们是什么的概述以及在什么情况下它们会有用吗? -
11 votesanswersviews
Haskell中State的Functor / Applicative实例
在阅读(并略过一些部分)Wadler关于monad的论文之后,我决定更仔细地研究这篇论文,为他描述的每个monad定义函子和应用实例 . 使用类型同义词 type M a = State -> (a, State) type State = Int Wadler用来定义状态monad,我有以下(使用相关的名称,所以我可以稍后使用newtype声明定义它们) . fmap' :: (a -&... -
188 votesanswersviews
不是Functor / Functor / Applicative / Monad的好例子?
在向某人解释什么是类型类X时,我很难找到正好是X的数据结构的好例子 . 所以,我请求示例: 一个不是Functor的类型构造函数 . 一个类型构造函数,它是一个Functor,但不是Applicative . 一个类型构造函数,它是一个Applicative,但不是Monad . 一个Monad的类型构造函数 . 我认为Monad到处都有很多例子,但Monad的一个很好的例子与... -
15 votesanswersviews
如何证明monad是一个仿函数和一个应用函子?
Monad在理论上被认为是仿函数的一个子集,特别是应用仿函数,尽管它没有在Haskell的类型系统中指出 . 知道这一点,给定一个monad并基于 return 和 bind ,如何: derive fmap , derive <*> ? -
3 votesanswersviews
应用函子和monad之间的等价性
人们说monad是应用函子的扩展,但我不是以应用函子为例: (<*>) :: f(a->b) -> f a -> f b [(+3)] <*> [2,3,4] 现在,我也期望我可以做与monad相同的事情,这意味着我可以应用2个参数:一个上下文包含一个函数,另一个上下文来获取一个上下文 . 但对于monad,我不能 . 我需要的只是写一个像这样丑陋的函数... -
188 votesanswersviews
不是Functor / Functor / Applicative / Monad的好例子?
在向某人解释什么是类型类X时,我很难找到正好是X的数据结构的好例子 . 所以,我请求示例: 一个不是Functor的类型构造函数 . 一个类型构造函数,它是一个Functor,但不是Applicative . 一个类型构造函数,它是一个Applicative,但不是Monad . 一个Monad的类型构造函数 . 我认为Monad到处都有很多例子,但Monad的一个很好的例子与... -
188 votesanswersviews
不是Functor / Functor / Applicative / Monad的好例子?
在向某人解释什么是类型类X时,我很难找到正好是X的数据结构的好例子 . 所以,我请求示例: 一个不是Functor的类型构造函数 . 一个类型构造函数,它是一个Functor,但不是Applicative . 一个类型构造函数,它是一个Applicative,但不是Monad . 一个Monad的类型构造函数 . 我认为Monad到处都有很多例子,但Monad的一个很好的例子与... -
198 votesanswersviews
函数作为模板参数传递
我正在寻找涉及将C模板函数作为参数传递的规则 . 这由C支持,如下例所示: #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int ... -
0 votesanswersviews
使用tr1 :: function时编译错误
目的是在CDevVS890中调用m_callback_fn时执行CVS890Executor :: do_full_frame . 以下是有罪的代码: "CDevVS890.h" typedef std::tr1::function<void (void* frame, int len)> DoFrameFn; class CDevVS890 { public:... -
3 votesanswersviews
具有任何参数列表的函数的泛型函子
我需要实现一个函数,它在实例化时接受任何(!)函数指针,分析参数类型,存储指针以及何时调用operator(),使用指针执行某些操作 . 最简单的情况是,用它的参数调用函数 . 我尝试将函数指针转换为类似std :: function的东西,我得到错误: error: invalid use of incomplete type ‘struct std::function<void (*)(... -
8 votesanswersviews
Scala - 如何在非函数类型上使用Functors?
在阅读此博客上的Functors说明时: https://hseeberger.wordpress.com/2010/11/25/introduction-to-category-theory-in-scala/ Functor的一般定义和更具体的定义: trait GenericFunctor[->>[_, _], ->>>[_, _], F[_]] { def... -
20 votesanswersviews
类型的函数和应用程序(* - > *) - > *
我遇到了一种情况,我的代码将从使用 Functor 和 Applicative 类似的抽象中受益,但对于类型 (* -> *) -> * . 定义一个更高级的仿函数可以像_2935073这样完成 class HFunctor f where hfmap :: (forall x. a x -> b x) -> f a -> f b 但 Applicativ... -
5 votesanswersviews
无法专门化功能模板
这是家庭作业,虽然已经提交了不同的方法 . 我从Visual Studio 2008获得以下内容 error C2893: Failed to specialize function template 'void std::sort(_RanIt,_RanIt,_Pr)' 代码如下 main.cpp Database<> db; db.loadDatabase();... -
2 votesanswersviews
upper_bound使用binary_function Visual Studio 2008 Bug?
首先,是的,我被困在使用Visual Studio 2008,我相信这个bug是特定于Visual Studio 2008的 . 我正在尝试编写一个仿函数来比较我的结构中的1个成员,这样我就可以在 upper_bound 上对所述结构进行 upper_bound 的排序 . 那是's hard to explain in words so here'的一个例子: struct Foo { ...