Каков технический термин для двух функций с одинаковой сигнатурой и одинаковым поведением, но разными именами? - PullRequest
0 голосов
/ 06 ноября 2018

Когда мы говорим, что один аспект программы может быть изменен полностью независимо от другого аспекта, мы говорим, что эти вещи ортогональны друг другу.

Я ищу в значительной степени противоположный термин. Например, в C ++ будет хорошей идеей, если оператор копирования-присвоения имеет ту же сигнатуру вызова, что и конструктор копирования, и если они имеют идентичные эффекты (или достаточно близки, чтобы их не волновать). Таким образом, можно сказать или написать: «это хороший дизайн классов в C ++, чтобы сделать конструктор копирования и оператор присваивания _______ друг другу».

[EDIT] Я спрашиваю о концепции компьютерного языка, связанной со следующим утверждением: «эти две функции имеют разные идентификаторы, но сходные роли, и поэтому должны иметь одинаковые типы аргументов, одинаковые возвращаемые типы (если это возможно) и те же (или очень похожие) побочные эффекты или поведение. "

Этот вопрос не о C ++ и не об объектной ориентации. Я ищу более общую компьютерную науку или математическую концепцию здесь.

1 Ответ

0 голосов
/ 06 ноября 2018

Вы имеете в виду две такие функции?

f: T -> R г: Т -> Р

Для всех x в T, f (x) == g (x)

И принимать также те же побочные эффекты (в математике нет побочных эффектов функции)

g и f являются просто эквивалентными функциями.

...