functor

    6热度

    1回答

    给定一个应用函子f,我有一个想法,即创建一个新的应用函数Rev f,如f,但是效果顺序相反。那就是: import Control.Applicative newtype Rev f a = Rev {unRev :: f a} instance Functor f => Functor (Rev f) where fmap f (Rev fx) = Rev (fmap f fx

    2热度

    1回答

    在此示例中: auto f = [](int some, int some2){ //do something }; 这情况下,它是一个算符或功能对象? std::function<void(int, int)> f = [](int some, int some2) { //do something } 现在,在这种情况下,结果是什么?函数或函数的对象?

    0热度

    2回答

    我正在寻找一个反例以反驳任何lambda表达式可以表示为(模板化)结构的说法。换句话说,编写一个源到源编译器是可能的,该编译器应该能够将每个lambda表达式提取出任何范围,并将其表示为模板化的函子类。 例如,只要最终用户而言,下面两个是等价的: auto foo(int parm){ ... auto f = [x,&y](int z) {..}; ..

    10热度

    4回答

    读this Wikibook about Haskell and Category Theory basics,我了解函子: 函子基本上是类别之间的变换,所以给定的 类别C和d,函子F:Ç - > d 映射任何对象A在C至F(A),在D. 地图态射F:A - >中的B C至F(F):F(A) - > F(B)在D 。 ..听起来很好。后来一个例子提供: 让我们样本的实例,也: instance F

    1热度

    1回答

    我已经开始了解lambda表达式和嵌套lambda表达式创建: auto Suma=[](int x)->function<int(int)> { return [x](int y) { return x+y; }; }; auto Mult=[](function<int(int)>&f, int z) {

    -1热度

    1回答

    我正在阅读其他人的代码,这部分让我困惑。任何人都可以向我解释*this在这里指什么,这条线(for_each(node->items.begin(), node->items.end(), *this);)在做什么?这段代码来自搜索R/R *树中的元素。我想在这里,我们应该提供一个函子for_each(begin,end,functor),但我不知道*this(这在我看来是“node->items

    2热度

    2回答

    我试图将下列递归模块拆分为单独的编译单元。具体来说,我希望B能够使用它自己的b.ml,以便能够与其他A一起使用。 module type AT = sig type b type t = Foo of b | Bar val f : t -> b list end module type BT = sig type a type t = {

    1热度

    2回答

    我有一个关于使用函子返回值和参数的问题。让我们有这样的代码: int op_increase (int i) { return ++i; } int main() { std::vector<int> foo; std::vector<int> bar; // set some values: for (int i=1; i<6; i++)

    11热度

    3回答

    Monads从Functor typeclass得到fmap。为什么共同体不需要在Cofunctor类中定义的cofmap方法?

    -1热度

    1回答

    在一个C的main函数的顶部“在此范围内未声明” ++剧本,我定义基于命令行参数的函数指针如下:这里 int main(int argc, char *argv[]) { // Set integration method. const char* method = argv[argc - 1]; if (strcmp(method, "euler") == 0)