currying

    0热度

    2回答

    我有这样的多态函数: def findFirst[A](as: Array[A], p: A => Boolean): Int = { @annotation.tailrec def loop(n: Int): Int = { if(n >= as.length) -1 else if(p(as(n))) n else loop(n + 1)

    2热度

    4回答

    var add = function(a, b) { return a + b; } var addOne =add.bind(null,1); var result = addOne(4); console.log(result); 这里的绑定的值是1,b是4 如何分配的结合值即)1到函数的第二个参数,而无需使用传播算子(...)

    0热度

    1回答

    我有以下的本地方法。 void Test(int i, int j, int k) { Console.WriteLine($"{i} {j} {k}"); } ,我有以下 public static class Curry { public static Func<T0, T1, Action<T2>> act2f3<T0, T1, T2>(Action<T

    0热度

    2回答

    我下面从coursera课程而这个例子出现在演讲,但是当我尝试运行它,它如下抛出一个错误: 在对象的HelloWorld缺少参数列表方法的MapReduce 未应用的方法仅在预期函数类型时才转换为函数。 您可以通过编写mapReduce _或mapReduce(_,_,_)(_,_)而不是mapReduce来明确此转换。 变种斗= MapReduce的(X => X,(X,Y)=> X * Y,0

    0热度

    1回答

    我正在检查凯尔的辛普森书“你不知道JS:这个&对象原型”的代码,并坚持代码示例,它写在下面。 难道有人可以解释一下,在执行var bar = foo.bind(null, 2);段代码后,bar变量如何将“a”参数保存为2并保存该保存的参数,以及为什么bar(3);代码执行时不会覆盖参数? function foo(a, b) { console.log(a, b);

    1热度

    2回答

    我在用Ruby语言探索函数式编程。以下是我的Ruby版本。我已经在各种函数上进行了测试,包括反转,过滤器,地图等,并且如预期的那样返回结果。但它会改变数据并需要赋值语句。任何人都可以帮助我做到这一点,但不违反功能范式吗?任何人都可以帮助我在底部部分应用咖喱功能吗?我怀疑有什么明显的我失踪了。谢谢。 fold_l = lambda do |ray, base, funcky| if ray

    0热度

    2回答

    目前与亚历山大的curry咖喱功能必须调用funcall。但是,可以设置新功能的symbol-function,这样我们就可以在没有它的情况下将其视为真正的功能。画报上https://lispcookbook.github.io/cl-cookbook/functions.html#with-the-alexandria-library: (defun adder (foo bar) "

    0热度

    1回答

    如何理解currying的功能? newSum和newFind如何工作? var currying = function(fn) { var args = []; return function() { if (!!arguments.length) { [].push.apply(args, arguments); // What's t

    2热度

    1回答

    Ramda的流动分型有以下curried function definitions: declare type __CurriedFunction1<A, R, AA: A> = & ((...r: [AA]) => R) declare type CurriedFunction1<A, R> = __CurriedFunction1<A, R, *> declar

    0热度

    1回答

    我只是知道这是简单的部分应用程序,它可以(并且对Haskell来说)简化语法?