functor

    3热度

    1回答

    我想要定义一个具有两个参数的类型i和m。我想专门研究这个类型,修复两个固定m参数的特定实例。目前,我有如下定义: -- | ZadehMembership: represents a membership value between 0 and 1 with min and max operators newtype ZadehMembership = Z Double deriving (Sh

    -1热度

    1回答

    我已经编写了一个应用程序,用于解析命令行并初始化应用程序,但是使用C语言。但所需的应用程序是用C++编写的。以下代码片段提取/解析参数并调用相应的函数。 void (* const OptionFuncPtr[])(char *pstr) = { (SetA),(GetB), (SetC), (SetD), (Erase), (FOptions), (GOperations

    4热度

    2回答

    我想知道使用完美转发仿函数的正确方法是什么?这里有两个代码片段。哪一个是最好的,如果两者都不是,最好的形式是什么? template<typename T, typename... Args> void callMe(T&& func, Args&&... args) { func(std::forward<Args>(args)...); } 或者 template<typen

    3热度

    1回答

    我想我的问题也可以归结为类似 是否有地道的ES6办法有: array.map(identity) === array? array.filter(i => true) === array? {obj..., attr: obj.attr} === obj? 我知道,它没有像ES6那样实现,但是有一些我可能缺少的语法或简单的帮助函数使这些属性成为true而不诉诸于不可变的lib吗? 我使用Babel

    8热度

    3回答

    我是新来函数式编程(来自JavaScript),我很难说出两者之间的差异,这也与我对函子与单子的理解混淆。 函子: class Functor f where fmap :: (a -> b) -> f a -> f b 单子(简化): class Monad m where (>>=) :: m a -> (a -> m b) -> m b fmap接受一个函数和一个

    1热度

    1回答

    我正在用Functors和QuickCheck做运动。 我有一个超级简单的函数,其组成法我希望quickCheck。 该Functor只是一个Identity a。 这是我的代码至今: import Data.Functor import Test.QuickCheck newtype Identity a = Identity a instance (Eq a) => Eq (Iden

    1热度

    2回答

    这是我从http://www.catonmat.net/blog/on-functors/复制的函子代码。 #include <algorithm> #include <iostream> #include <list> class EvenOddFunctor { int even_; int odd_; public: EvenOddFunctor()

    2热度

    1回答

    (声明:我相当肯定,这是不以任何方式惯用如果OCaml中一些替代树遍历成语,我所有的耳朵:))。 我在OCaml中编写了一个玩具编译器,我想为我的大型语法树类型设置一个访问者。我写了一个使用类,但我认为尝试和使用模块/函子实现一个会很有趣。我的类型层次结构非常庞大,所以让我说明我正在尝试做什么。 考虑以下类型定义(做这些了当场): type expr = SNum of int

    -3热度

    1回答

    构造请问可不可以帮我传递一个仿函数,如: struct BFunc { double operator()(const double x, const double y, const double z){ return 0.1; } }; 到一类的构造函数: class foo { int n; public: foo(); foo(in

    0热度

    2回答

    我想做一个优先级队列,其中最顶部的元素包含最小的整数。我做了一个比较功能对象。一切都很顺利,但是,每当我试图打印出最上面的元素std::cout<<pq.top<<std::endl我得到一个错误,指出: candidate function not viable: no known conversion from 'const value_type' (aka 'const Foo') to