Что означает "предикат" в контексте информатики?

В частности, я видел, как он использовался в контексте текстовой фильтрации. Как будто "предикат" == "критерии фильтра".

Насколько это верно?

Ответ 1

Это термин, наиболее часто используемый в области математической логики.

От wikipedia

В математике предикат является либо отношением, либо логической функцией, которая равна характеристической функции или индикаторной функции такого отношения.

Функция P: X → {true, false} называется предикатом на X. Когда P является предикатом на X, мы иногда говорим, что P является свойством X.

.

"предикат" == "критерии фильтрации"

Ответ 2

Предикат ( "PRED-i-cat" ) является частью предложения, содержащего глагол, и сообщает вам что-то о предмете.

Например, в предложении

"Майк ест", у нас есть тема "Майк" и предикат "едят".

В контексте информатики нам не интересно указывать факт, а скорее при тестировании истинного/ложного условия с целью решить, что делать.

Person mike;

if (!mike.isEating())
    feedPerson(mike);

Член isEating() mike (экземпляр Person) является предикатом. Он возвращает true или false для утверждения, что в этом случае используется Person (mike). Предикат используется для определения того, следует ли кормить человека.

Предикаты часто встречаются в форме обратных вызовов, но в общем случае мы можем использовать термин для любой функции, которая возвращает bool на основе оценки истины утверждения.

Для сортировки может потребоваться функция-член

bool Fruit::ComesAfter(Fruit x) ...

как наш предикат. Если x появится после нас, наш алгоритм сортировки заменит два плода.

Там также термин предикат (predi-KATE). На английском языке мы используем его следующим образом:

"Выпуск основывается на достижении прохождения оценок".

Это означает, что одно зависит от другого.

В информатике мы используем эту форму слова для описания условного исполнения.

Например, в программировании CUDA существуют инструкции по сборке, выполнение которых мы можем предикатировать (KATE) по предыдущему результату. То есть вы устанавливаете флаг предиката (CAT), который, если true, вызывает выполнение команды, а если false, вызывает обработку инструкции как NOP. Таким образом, выполнение инструкции основывается на указанном знаке предиката.

Использование очень похоже.

Надеюсь, что это поможет.

Ответ 3

Слово происходит от логики.

Предикат - это логический вопрос "есть" относительно входных данных.

"IsNull" - предикатный вопрос.

Также ссылка wikipedia о Предикаты в математике.

Ответ 4

Предикат - это утверждение о том, что является либо истинным, либо ложным.

Ответ 5

Предложение:

  • либо определенно установлено значение true или false
  • не зависит от значений параметров
  • например.
    • "x + 2 = 2x, когда x = -2" = > true
    • "2 * 2 = 5" = > false

предикат:

  • Значение истины зависит от значения параметра
  • например.
    • "x + 2 = 2x" = > значение истины неизвестно и зависит от значения x

Использовать кванторы для преобразования предиката в предложение:

  • ∃x∈Z (x + 2 = 2x) "В наборе целых чисел существует такое x, что x + 2 = 2x"

Ответ 6

Просто для упрощения вещей. Предикат - это функция, возвращающая значение true или false.

используется как "критерий фильтра", что означает: позволяет рассмотреть массив чисел и предикат, который возвращает true, если число > 0, ложное другое.

function predicate(number){
  return number > 0 
}
// array of numbers 
var numbers = [-2 , -1 , 0 , 1 , 2];

var newNumbers = numbers.filter(predicate);

// newNumbers => [1 , 2] ;

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

он отфильтровал массив на основе значения предиката

  • true: включить значение
  • false: не включать его

Ответ 7

Predicate - это функция, которая принимает один элемент в качестве входного параметра и возвращает либо true, либо false. Предикаты используются в функциях более высокого порядка, применяемых к определенной функции (a.k.a transformer) по элементу к списку элементов и возвращают список результатов. Трансформатор - это функция, применяемая к каждому элементу и создающая один или несколько новых элементов.