Будучи кодовым хобби, мне не хватает фундаментальных знаний. Последние пару дней я читал кое-что, и слово "предикат" продолжает появляться. Я очень благодарен за разъяснение по этому вопросу.
Что такое предикат?
Ответ 1
Определение предиката, которое можно найти в Интернете в различных источниках, таких как здесь, следующее:
Логическое выражение, которое оценивает TRUE или FALSE, обычно направляет путь выполнения в код.
Ответ 2
Оператор, который является либо истинным, либо ложным. В программировании это обычно функция, которая возвращает логическое значение для некоторого ввода.
Чаще всего (я думаю) используется в контексте функции более высокого порядка. Например. filter
- это функция на многих языках, которая принимает предикат и список в качестве аргументов и возвращает элементы в списке, для которого предикат является истинным.
Пример в javascript:
lessThanTen = function(x) { return x < 10; }
[1,7,15,22].filter(lessThanTen) --> [1,7]
функция lessThanTen
является предикатом здесь, который применяется к каждому элементу в списке. Конечно, логическое выражение может использоваться как предикат вместо функции, например, filter(true)
вернет полный список, filter(false)
пустой список.
Ответ 3
Предикат - это не просто выражение, которое оценивает true или false, а больше ему. Термин "предикат" используется для обозначения выражения, которое определяет, является ли что-то истинным или ложным. Или, другими словами, он делает утверждение и возвращает true или false на основании этого.
Например (в С#):
/*this is a predicate, as it sole purpose is to make some
assertion about something.*/
bool IsNameBob(string name)
{
return name == "Bob";
}
/*Whereas this is not a predicate, as it performing an action
then evaluating to true if it succeeds. */
bool DoSomethingCool() {
try
{
ImDoingSomethingCool();
}
catch
{
return false;
}
return true;
}
Я понимаю, что я здесь поставил, это просто разница в семантике, но что этот вопрос был прав? Семантика?
Ответ 4
Основная оценка, которая приводит к булевому значению 1. Он часто ссылается на функцию или объект, который представляет оценку этого типа.
1: boolean используется свободно, не обязательно ссылаясь на объявленные переменные bool
или boolean
.
Ответ 5
В не программируемых терминах; вопрос. Как правило, общий вопрос с владельцами мест (например, он и их), которые могут быть заданы из многих вещей.
- он красный?
- она собака?
- он принадлежит им?
Ответ 6
Сначала рассмотрим обычный словарь и посмотрим, что он говорит о том, что такое предикат:
Оксфордский американский словарь (1980):
п. часть предложения, которое говорит что-то о грамматическом предмете, как "короткое" в "жизни короткое"
Вот еще одно предложение: "Джон высокий". предикат "высок". Поскольку вы можете видеть, что он изменяет или описывает объект, другим термином, похожим на predicate
, является adjective
. По существу это модификатор.
Технология IBM глоссарий содержит несколько определений, но один из них подходит лучше всего:
Выражение, используемое как часть фильтра, состоящее из элемента данных, оператора и значения
Вот пример использования SQL:
SELECT name
FROM tableA
WHERE name = "john";
Предикат в этом коде будет name = "john"
. Он имеет все компоненты определения IBM и также соответствует регулярному определению предиката. Субъект name
, а предикат - name = "john"
.
Ответ 7
Функция, возвращающая логическое значение. Предикаты используются в функциональном программировании и программировании OO для подмножества значений из структур данных, особенно списков и других коллекций. Вы найдете множество примеров в стандартных библиотеках для Haskell и Smalltalk.
Ответ 8
Вероятно, полезно рассмотреть грамматический смысл концепции, чтобы экстраполировать концепцию программирования.
В традиционной грамматике предикат одна из двух основных частей предложение (другое - предмет, который предикат модифицирует). Для простое предложение "Джон [желтый]", Иоанн действует как субъект и желтый действует как предикат, а последующее описание предмета возглавляемый глаголом.
В текущей лингвистической семантике a предикат - это выражение, которое может быть что-то. Таким образом выражения "желтый" или "похоже" брокколи "относятся к этим вещам желтые или подобные брокколи, соответственно. Это понятие близко связанные с понятием предиката в формальной логике, которая включает в себя больше выражения, чем прежние, например, например, существительные и некоторые виды прилагательные.
В логических терминах:
Оператор в логике, который возвращает либо true, либо false.
из MathWorld
Ответ 9
Я не знаю, говорю ли я в правильном контексте, но есть класс Predicate
в С#, который по существу является делегатом, который, учитывая элемент, определяет, соответствует ли объект набору критериев.
Например, следующий метод, который имеет тип Predicate<int>
, может использоваться для выбора всех целых чисел больше 5:
public bool MyPredicate(int x)
{
return x > 5;
}
Я не уверен, как это переводится в более общий случай, но это начало. Для получения дополнительной информации нажмите здесь.
Ответ 10
От C++ Учебник для начинающих 5 (§10.3.1):
Предикат - это выражение, которое можно вызвать и которое возвращает значение, которое можно использовать в качестве условия.
Также из раздела "Определенные термины":
Предикат: функция, которая возвращает тип, который можно преобразовать в
bool
.
Ответ 11
Также несколько связаны, существуют предикаты, связанные с базой данных:
Ответ 12
Лучший С.О. Я нашел ответ вокруг предикатов на дублирующий вопрос.
Подводя итог, в естественных языках предикат является частью предложения, которое описывает предмет.
Джейн высокая
Джейн - субъект, а is tall
- предикат.
В области компьютерных наук нас интересует не утверждение факта о предмете, а проверка того, является ли что-то истинным или ложным.
jane.isTall();
Здесь jane - это некоторый объект с методом предиката, который будет возвращать либо true, либо false.