Подтвердить что ты не робот

Что такое предикат?

Будучи кодовым хобби, мне не хватает фундаментальных знаний. Последние пару дней я читал кое-что, и слово "предикат" продолжает появляться. Я очень благодарен за разъяснение по этому вопросу.

4b9b3361

Ответ 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.

Ответ 12

Лучший С.О. Я нашел ответ вокруг предикатов на дублирующий вопрос.

Подводя итог, в естественных языках предикат является частью предложения, которое описывает предмет.

Джейн высокая

Джейн - субъект, а is tall - предикат.

В области компьютерных наук нас интересует не утверждение факта о предмете, а проверка того, является ли что-то истинным или ложным.

jane.isTall();

Здесь jane - это некоторый объект с методом предиката, который будет возвращать либо true, либо false.