【发布时间】:2012-12-14 07:22:14
【问题描述】:
我目前正在为矢量化操作编写一个高度模板化的 C++ 帮助类,我需要一个特定操作的名称。
我已经有 2 个函数,它们的名字非常常见,取自矢量语言:
-
apply()将函数应用于向量的每个元素 -
reduce()对向量应用归约运算并返回一个标量
现在我想实现另一个函数,它是这两者的混合:它需要几个向量作为输入,并对每一行应用归约操作,然后返回一个向量。
为了说明这一点,我们有:
-
apply(func, vec)-> 返回{func(vec[0]), func(vec[1]), ..., func(vec[n])} -
reduce(func, vec)-> 返回func(vec[0], vec[1], ..., vec[n])
和:
-
something(func, vec1, vec2, ..., vecn)-> 返回{func(vec0[0], vec1[0], ..., vecn[0]), func(vec0[1], vec1[1], ..., vecn[1]), ..., func(vec0[n], vec1[n], ..., vecn[n])}
这个函数的通用名称是什么(一个简单的动词,如 apply 或 reduce)(如果存在这样的函数,则与其他矢量语言兼容)?
【问题讨论】:
-
这不是这个 MapReduce 的标准名称吗? en.wikipedia.org/wiki/MapReduce
-
它只是结合了一个 zip 和一个地图。