В настоящее время я пишу высококвалифицированный вспомогательный класс 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])}
Каково будет общее название для этой функции (простой глагол типа применять или уменьшить) (совместимый с другими векторными языками, если такая функция существует)?
Может быть, zip_, который я видел в Haskell?
Других решений пока нет …