function-composition 相关问题

将一个函数应用于另一个函数的结果称为函数组合:`(f.g)(x)= f(g(x))`

了解 F# 组合运算符

我精通使用 >> 和 << operators in F#. However, after looking in the F# source to establish a deeper understanding I became confused with this: let inline (>>) ...

回答 2 投票 0

如何使用数组作为组合函数参数?

我在使用数组作为参数构建组合函数时遇到问题。 出现此错误 类型错误:arr.map 不是函数 const testArray = ["CusTom", "Web", "...

回答 1 投票 0

为什么我的其中一个 compose 函数无法推断类型?

我有2个写作功能:compose和composeR。它们接收 2 个函数并将它们组合在一起,其中一个函数的输出作为输入传递给另一个函数。这是他们的

回答 1 投票 0

Lean 4 中如何进行函数组合?

如果我有两个函数 f 和 g,在 Haskell 中我可以通过编写 g.f 来组合它们。我如何在精益 4 中做同样的事情?

回答 1 投票 0

修复动态函数组合

我正在尝试在 JavaScript 中创建一个动态组合其他函数的函数。目标是传递一个函数数组并接收一个按顺序应用每个函数的新函数。

回答 1 投票 0

为什么juxt以juxtaposition命名?

为什么Clojure的juxt以juxtaposition命名?我看不出并列的是什么。这与具有直观命名的partial 和comp 形成对比。

回答 1 投票 0

函数组合 (.) 运算符如何处理多个组合?

我知道点(.)运算符被定义为采用三个参数(两个函数和“Num”类中约束的“a”类型的值),并通过应用

回答 1 投票 0

我可以使用 std::bind* 编写函数吗?

我正在使用 C++20 进行函数式编程并编写类似的内容: 模板 概念可组合= std::可调用 我正在使用 C++20 进行函数式编程并编写类似的内容: template <class OuterFn, class InnerFn, class... Args> concept Composable = std::invocable<OuterFn, std::invoke_result_t<InnerFn, Args...>>; template <class OuterFn, class InnerFn> constexpr auto compose(OuterFn&& outer, InnerFn&& inner) { return [ out = std::forward<OuterFn>(outer), in = std::forward<InnerFn>(inner) ]<class... Args>(Args && ... args) requires Composable<OuterFn, InnerFn, Args...> { using std::invoke, std::forward; return invoke(out, invoke(in, forward<Args>(args)...)); }; } template <class OuterFn, class InnerFn> constexpr auto operator*(OuterFn&& outer, InnerFn&& inner) { using std::forward; return compose(forward<OuterFn>(outer), forward<InnerFn>(inner)); } template <class... RestFn> constexpr auto compose(RestFn&&... rest) { return (std::forward<RestFn>(rest) * ...); } 这是工作,但我想通过使用 std::bind* 而不是 lambda 来重构两个参数的 compose。 也许您有想法我该如何做到这一点,或者我不能这样做的原因? 问题是如何检索内部函数的参数。 std::bind(outer, std::bind_front(inner)); 我通过类比尝试了可变参数模板参数(以及数百万个其他变体) std::bind(outer, std::bind(inner, _1)); 对于一个论点,但它不起作用。 附注对不起我的英语) 当您提供代码时,似乎可以按照您的要求进行操作。 这是您要求的示例(如果我理解正确的话): #include <functional> using namespace std::placeholders; double mulF(const double x, const double y) { return x * y; } double addTen(const double x) { return x + 10; } int main() { static const std::function<double(const double, const double)> mulCb = std::bind(mulF, _1, _2); static const std::function<double(const double)> addTenCb = std::bind(addTen, _1); const std::function<double(const double, const double)> composed = std::bind(addTenCb, std::bind(mulCb, _1, _2)); // together as you asked std::cout << "Output: " << composed(5, 3) << std::endl; // Output 25 (5 * 3 + 10). return 0; }

回答 1 投票 0

如何纯粹使用Python的标准库来编写函数?

Python 的标准库非常庞大,我的直觉告诉我其中一定有一种方法可以实现这一点,但我就是想不出来。这纯粹是出于好奇和学习目的: 我哈...

回答 1 投票 0

Julia 中有函数组合运算符吗?

假设我有两个功能: f(x) = x^2 g(x) = x + 2 它们的组成就是函数 h(x) = f(g(x)) Julia 中有用于函数组合的运算符吗?例如,如果 * 是

回答 1 投票 0

工厂功能及组成

我的 JavaScript 代码如下: const 计算直径 = (圆) => ({ 获取直径(){ return (圆.半径 * 2); } }); constcalculateCircumfrance = (圆) => ({ 得到

回答 1 投票 0

Pinia 存储与可组合函数

我想弄清楚使用 Pinia store 而不是仅使用纯 ts 可组合函数(如 const 用户名 = ref('') 导出默认函数 useUser() { 常量

回答 2 投票 0

优化两个函数的组合

在发展我的编程技能时,我经常遇到这样的信息:“不要将这些函数链接在一起。相反,使用可以更快地完成这两个函数的内置函数。&q ...

回答 1 投票 0

n次Haskell的合成函数

有人知道如何执行给定功能超过自身n次的功能吗?基本上是f(f(x))n次addOne :: Int-> Int addOne x = x + 1 addOne':: [Int]-> [Int] addOne'[] = [] addOne'(...

回答 1 投票 0

计算map的类型。文件夹`

map ::(a-> b)-> [a]-> [b]文件夹::可折叠t =>(a-> b-> b)-> b-> ta-> b什么是系统的找出地图类型的方法。文件夹?我知道该怎么做...

回答 2 投票 0

在Python中像Haskell的重复一样重复一个函数组合n次

此代码无效:def inc(x):返回x + 1 def repeat(f,n):如果n == 0:返回lambda x:x else:返回f(repeat(f,n-1) )inc_10 = repeat(inc,10)#...

回答 2 投票 0

Haskell:我如何“向后”编写函数,例如Clojure的线程(->)?

这里是Haskell的新手。我想写:取1 $取2 [1、2、3]-= 1反转,就像这个伪代码:[1、2、3]->取2->取1-= 1在Clojure中,我们可以这样操作:(->> [1 ...

回答 2 投票 1

TypeScript:如何编写用于异步函数组合的asyncPipe函数?

我最近又在探索TypeScript。它的主要限制之一似乎是无法键入函数组合。首先让我向您展示JavaScript代码。我正在尝试输入:...

回答 1 投票 0

具有多个参数与多个参数列表的组合函数

给出以下示例,如果我尝试使用多个参数列表或多个参数来组合一个函数,我会发现它有所作为。我看不出为什么它不一致。 val ...

回答 2 投票 1

JavaScript绑定应在未定义的情况下将第二个参数设置为等于第一个参数?

我最近尝试了解javascript中的函数组成。我了解了什么是currying以及它是如何工作的,但是我看到了这段代码,但我并不太了解。它是使用...

回答 1 投票 0

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