jjzjj

javascript - 仿函数或单子(monad)的名称和存在以链接和终止操作序列

请原谅我,我会尽力描述我正在寻找的东西。我没有它的名字,所以它变得更加困难。查看库,例如Folktale和monet.js,我喜欢能够使用map链接操作而无需空检查或if语句,例如使用也许,要么,任务。我想知道是否存在类似的构造来解决以下问题:我有初步意见。我想构建一个对输入进行操作的函数链。每个函数可能返回也可能不返回结果。如果函数没有返回结果,则调用链中的下一个函数。一旦函数返回结果,就忽略链中的其余函数(类似于map在Maybe.Nothing上ping一个函数)返回结果。换句话说,我正在寻找类似于Maybe的东西,它包含一个值并将函数映射到Just但忽略映射到Nothing的函

javascript - 如何正确使用尖函数

我正在尝试熟悉JavaScript中的函数式编程。我刚刚read该指针仿函数是:Anobjectwithanoffunctionthatputsanysinglevalueintoit.ES2015addsArray.ofmakingarraysapointedfunctor.我的问题是“单一值”的确切含义是什么?我想制作一个Functor/Container(如https://drboolean.gitbooks.io/mostly-adequate-guide/content/ch8.html),将给定维度(宽度、高度)的网格保存为一维数组,并允许我对其进行转换。作为一个普通对象,

c# - Nullable 可以用作 C# 中的仿函数吗?

考虑以下C#代码。publicintFoo(inta){//...}//insomeothermethodint?x=0;x=Foo(x);最后一行会返回一个编译错误cannotconvertfrom'int?'到'int'这很公平。但是,例如在Haskell中有Maybe,它对应于C#中的Nullable。因为Maybe是一个Functor,所以我可以使用fmap将Foo应用于x>。C#有没有类似的机制? 最佳答案 我们可以自己实现这样的功能:publicstaticclassFuncUtils{publicstaticNulla

java - 是否有保证 execute(T t) 方法的内置 Java 类型?

似乎对像下面这样的类型的需求如此普遍,以至于应该已经将类似的东西内置到Java中:publicinterfaceExecuter{voidexecute(Tobject);}然后它可以在其他类中使用,例如这个在一个对象上调用一堆执行器的简单示例。classHandlerimplementsExecuter{List>executerList;Handler(List>executer){this.executerList=executer;}voidexecute(Tt){for(Executerexecuter:this.executerList){executer.execute(

Java 流 API : are there syntax sugar for identity functor?

我们使用多个Map作为对象列表上的简单内存DB:classPerson{publicStringid;publicStringphone;publicStringemail;//andget/setandotherfields...}Listpersons;MapemailLookup=persons.stream().collect(Collectors.toMap(Person::getEmail,p->p));MapphoneLookup=persons.stream().collect(Collectors.toMap(Person::getPhone,p->p));Mapid

java - Best Java Functor lib : JGA, commons functor, mango, or...?

我对在Java中使用仿函数(函数对象)很感兴趣。通过快速谷歌搜索,我找到了这3个包:Java泛型算法:http://jga.sourceforge.net/公共(public)仿函数:http://commons.apache.org/sandbox/functor/芒果:http://www.jezuk.co.uk/cgi-bin/view/mango在3中,JGA似乎拥有最好的设计。但我怀疑这里实际使用过一个或多个包的其他人可能能够就这些(可能还有其他)仿函数包的优缺点提供更多见解。 最佳答案 芒果为0、1和2参数函数提供接口(

java - 如何使用 Java 8 编写函数的通用迭代?

请考虑以下两个函数:publicstaticFunctioncomposite(Functionfirst,Functionsecond){Objects.requireNonNull(first);Objects.requireNonNull(second);return(Uarg)->first.apply(second.apply(arg));}publicstaticFunctioniterate(Functionfunction,intn){if(narg;Objects.requireNonNull(function);Functioniteration=function;

c++ - 根据提案 n4015 实现 expected<E, T>

我开始实现expected根据建议,我遇到了问题。在描述monadic功能(5.9)时,在bind中声明如果结果已经包装在上下文中(expected),则不应再次包装。我如何实现它是bind有2个重载(使用enable_if),一个用于返回expected实例化的仿函数哪个实现没有将它包装在上下文中,而一个用于返回它所做的其他类型的那些。我遇到了一个问题,在调用者中没有值的情况下,非包装版本必须返回默认构造的expected这给出了预期的默认构造错误值。这导致返回的expected的进一步延续会丢失导致默认构造的错误的上下文。也许我应该处理被称为is_same,functor_ret_

线程拼图中的c++ 11仿函数

请考虑以下代码片段。使用GCC4.6.1,x变为0,y变为1。为什么使用和不使用单独的线程会得到不同的结果?我应该如何修改代码以使两个版本产生相同的结果(即整数值递增1?)谢谢。structfunctor{voidoperator()(int&x){++x;}};voidtfunc(functor&f,int&x){f(x);}intmain(){functorf;intx=0,y=0;std::threadt=std::thread(tfunc,f,x);t.join();std::cout 最佳答案 很容易看出发生了什么。只需替

c++ - 确定仿函数的参数和结果类型

我如何测试仿函数是否是一个可调用对象,它引用一个int并返回一个bool?templatevoidfoo(functorf){static_assert('functor==bool(int&)',"errormessage");intx=-1;if(f(x))std::cout 最佳答案 在我看来,您并不是真的想检查仿函数的签名,而是首先要限制用户可以传入的内容:如果您有权访问std::function,您可以这样做:voidfoo(conststd::function&f) 关于c+