Предикат ... или какой-то другой термин? - PullRequest
1 голос
/ 13 декабря 2011

Просто из любопытства: если у меня есть оператор класса (или функция и т. П.), Который принимает несколько аргументов (обычно 1 или 2) и возвращает 1 из 3 значений (вместо логического значения true или false), если он по-прежнему вызывается предикат? Или частный случай нечеткой логики? Или что?

Пример:
template <class T><br> class BinaryPredicate {<br> public:<br> virtual int operator()(const T& lhs, const T& rhs) const = 0;<br> };

, который возвращает -1, 0 или 1 в соответствии с определенной унаследованной операторной функцией (например, для определения порядка).

Ответы [ 2 ]

0 голосов
/ 13 декабря 2011

Хм, вы возвращаете конкретные значения из вашей функции, и в них нет ничего нечеткого, вы находитесь больше в трехзначной логической области (иногда называемой трехвалентной), чем в нечеткой области. Например, тривалент очень популярен в электронике (логика трех состояний). Устройство может находиться в 3 состояниях: логическое (true), логический ноль (false) и высокий импеданс.

0 голосов
/ 13 декабря 2011

Предикат предполагает, что вы подтверждаете правду о чем-то, что предполагает истинный и ложный результат, и только истинный и ложный результат.

В этом случае я бы лично назвал это «Сравнением», поскольку он действительно возвращает результат, обычно используемый для операций сравнения - отрицательный, ноль или положительный.

...