currying 相关问题

Currying是将带/ n / arguments的函数转换为一系列/ n /函数的过程,每个函数都带一个参数。像Haskell这样的语言使用它作为默认参数应用程序机制,因为它使某些编程技术(如部分应用程序)更容易。

PHP 中的柯里化

这次我尝试在 PHP 中实现柯里化(就像我们在 Javascript 中所做的那样)。以下是我的代码不起作用: 这次我尝试在 PHP 中实现currying(就像我们在 Javascript 中所做的那样)。以下是我的代码不起作用: <?php function test(callable $fn){ $reflection = new ReflectionFunction($fn); $args = count($reflection->getParameters()); $curried = function(...$currArgs) use($args, $fn){ if(count($currArgs) == $args){ return $fn(...$currArgs); }else{ return function(...$currArgs2) use($args, $fn, $currArgs){ return $curried(array_merge($currArgs, $currArgs2)); }; } }; return $curried; } $c = test(fn($x, $y, $z) => $x + $y + $z); echo $c(10)(20,30); 问题: 它给了我未定义的变量$curried如你所见here. 问题: 我们怎么能递归地调用相同的柯里化函数,因为我在这里看不到实现这个的方法? 预期输出: 预期的输出应该是 60 在回调中完成 fn($x, $y, $z) => $x + $y + $z

回答 0 投票 0

在函数式编程中使用柯里化/柯里化函数有什么好处?

如果您将 inner_multiply 视为 multiply 的初始值设定项,您是否应该让它们松散耦合并 DI 初始值设定项(或任何其他方式),特别是如果您需要多个初始值设定项?或者...

回答 2 投票 0

在 Ruby 中使用关键字参数柯里化过程

假设我有一个通用的 Proc、Lambda 或方法,它带有一个可选的第二个参数: pow = -> (base, exp: 2) { base**exp } 现在我想柯里化这个函数,给它一个 exp 3。 立方体 = pow...

回答 4 投票 0

使用 TypeScript,我可以键入 getProperty 的柯里化版本吗<T, K extends keyof T>

示例来自 https://www.typescriptlang.org/docs/handbook/advanced-types.html function getProperty(o: T, name: K): T[K] { 返回o[名称]; // o[name] 的类型是 T[K]...

回答 4 投票 0

将 m 元函数与 n 元函数组合在一个 (m+n) 元函数中,返回它们的结果对

我不知道这个应用程序会有多有用,但我对它很好奇,因为这个 C++ 回答了我的一个问题。 因此,假设给定一个三元 f 和一个二进制 g,例如 f x y z = x + 10*y ...

回答 1 投票 0

柯里化可以通过协程实现吗?

是否可以通过协程实现函数柯里化?你会怎么做? 通常,如果我需要柯里化一个函数,我会像这样使用 boost::hana::curry,但我很想知道 C++20 的

回答 1 投票 0

generic和ramda库的curry()一起使用时,generic不适用

这是一个在map中通过key查找并返回一个值的函数,如果没有找到则返回一个defaultValue。 从“不可变”导入{地图}; 从“ramda”导入{咖喱}; exp...

回答 1 投票 0

如何创建更动态的函数? (Java 脚本)

问题是创建一个使用柯里化或类似方法返回函数的函数。 然后老师让我们让它更有活力。 如果有“n”个参数怎么办...

回答 0 投票 0

如何在循环中用lambda函数定义一个非常量函数列表?

比方说,我想创建一个函数列表 funclist,使这个列表中的函数表现为: funclist[0](x) = 0 funclist[1](x) = x funclist[2](x) = 2*x funclist[3](x) = 3*x ... ...

回答 2 投票 0

如何借用一个结构的库函数字段?

我有一个结构,Parser与一个字段,变压器的意思是持有一个函数。这个函数返回一个闭包,它处理一个ParserState并返回一个ParserState。我做了一个函数 str_parser,...

回答 1 投票 1

重构函数以使用咖喱

我有三个函数,我想用currying重构,但我很难搞懂返回函数的函数。我正试图分解和设计curry函数 ...

回答 1 投票 0

咚咚和函数库里是一样的吗?

当我学会了咚,我觉得他们就像功能咖。为什么叫thunk呢?Thunk函数add(x,y){返回x+y }函数thunk() {返回add(10,20) }。功能咖喱...

回答 1 投票 1

避免手动编译函数的类型变量被推断为未知数。

我通常会通过箭头语法手动调用我的函数。似乎一遇到通用类型参数就会出现类型推理的问题:type Const = { const.A }; ..: A }; ...

回答 1 投票 0

如何用咖喱实现通用类型

鉴于这样的一种实现,一个通用的库里:公共静态的 功能 > 咖喱(BiFunction biFunction) { return t -> ...

回答 1 投票 0

在Haskell中,有没有一种prettyglib的方法,可以将一个库里的函数限制在另一个函数的图上?

今天终于在隔离区无聊到开始学习Haskell了,我真的很喜欢,我真的很喜欢这门语言的美学。希望这个问题不会激起大家的恨意 ...

回答 1 投票 0

Scala。如何在currying函数里面写一个f函数?

这个sum函数工作得很好,但我在写交换x和f的版本时遇到了麻烦:(Int=>Int) 工作得很好: def sum(f:Int=>Int):Int=>Int = { def ret_fun(x:Int):Int = if (......)

回答 2 投票 1

检查咖喱函数是否还在期待其他参数。

我想知道,如果可能的话,是否可以在不实际调用函数的情况下,找出一个javascript函数所期望的剩余参数。我想要一个函数...

回答 1 投票 0

如何在Haskell中实现无点的uncurry?

我一直在想如何实现不同的标准Haskell函数的无点。目前,我对uncurry感兴趣,我觉得这个很不简单。主要问题是...

回答 3 投票 2

减少乘法函数

我没有找到更好的题目。其实,这个问题更多的是关于范围的问题吧。但我会试着解释我的问题。我在这里和那里遇到过这样的例子,一个reduce方法做了嵌套......。

回答 1 投票 0

如何在Haskell中实现无毛点?

我一直想知道如何无点实现不同的标准Haskell函数。目前,我对uncurry感兴趣,并且我觉得这一点很重要。主要问题是...

回答 2 投票 2

© www.soinside.com 2019 - 2024. All rights reserved.