C++ 将两个序列函数(签名)展平/合并/合成/合并为一个?

C++ 将两个序列函数(签名)展平/合并/合成/合并为一个?,c++,functional-programming,C++,Functional Programming,这个问题是为了找出这个操作在科学和编程行业中的名称 how_is_this_called(f1(x1, x2), f2(y1, y2, y3)) -> f(x1, x2, y1, y2, y3) 我正在寻找操作的名称,它接受两个函数并返回一个参数串联的函数。然后,返回的函数将不再执行任何操作,然后使用传递给第一个函数的参数调用第一个函数,然后使用传递给第二个函数的参数调用第二个函数 伪C++代码为例 how_is_this_called(f1(x1, x2), f2(y1, y2, y3

这个问题是为了找出这个操作在科学和编程行业中的名称

how_is_this_called(f1(x1, x2), f2(y1, y2, y3)) -> f(x1, x2, y1, y2, y3)
我正在寻找操作的名称,它接受两个函数并返回一个参数串联的函数。然后,返回的函数将不再执行任何操作,然后使用传递给第一个函数的参数调用第一个函数,然后使用传递给第二个函数的参数调用第二个函数

伪C++代码为例

how_is_this_called(f1(x1, x2), f2(y1, y2, y3))
returns ->
    [=] (x1, x2, y1, y2, y3) {
        f1(x1, x2);
        f2(y1, y2, y3);
    }
<> >为了减少混淆,这里是我正在寻找的一个合适的C++例子:

// f1 ~ std::function<void(int, String)>
auto f1 = [](int a, String b) {
    cout << "f1: " << a << " - " << b << endl;
};

// f2 ~ std::function<void(String, int)>
auto f2 = [](String a, int b) {
    cout << "f2: " << a << " - " << b << endl;
};


// f ~ std::function<void(int, String, String, int, int, String)>
auto f = how_is_this_called(f1, f2, f1);

f(11, "str1", "str2", 22, 33, "str3");

那么您想返回两个结果的元组吗?不,函数“how_is_this_called”的返回值是一个新函数,它调用两个原始函数f1和f2。C++语法可能会混淆,但通常在函数编程中,函数不应该有副作用。@ WeleMeNoNeSM我在C++中添加了一个我正在寻找的工作例子。即使它有副作用并且不是纯函数式编程,这个操作也应该有一个名称,对吗?;-)据我所知,这个没有名字。它似乎也不是很有用。
f1: 11 - str1
f2: str2 - 22
f1: 33 - str3