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



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

2187   11  

11 ответов:

определение предиката, который можно найти в интернете в различных источниках, таких как здесь, является:

логическое выражение, которое вычисляется как TRUE или FALSE, обычно для направления пути выполнения в коде.

ссылки: Тестирование Программного Обеспечения. Мэтью Хейден

утверждение, которое является либо истинным, либо ложным. В программировании это обычно функция, которая возвращает логическое значение для некоторых входных данных.

чаще всего (я думаю) используется в контексте функции высшего порядка. Е. Г. filter - это функция на многих языках, которая принимает и список в качестве аргументов и возвращает элементы в списке, для которых предикат имеет значение true.

пример в javascript:

lessThanTen = function(x) { return x < 10; }
[1,7,15,22].filter(lessThanTen) --> [1,7]

функции lessThanTen здесь предикат, который применяется к каждому элементу в списке. Конечно, логическое выражение может быть использовано в качестве предиката вместо функции, например filter(true) вернет полный список,filter(false) пустой список.

предикат - это не просто выражение, которое оценивается как true или false, это еще не все. Термин "предикат" используется для обозначения выражения, которое определяет есть ли что-то истинным или ложным. Или другими словами, он делает утверждение и возвращает true или false в зависимости от того.

например (в C#):

/*this is a predicate, as it's sole purpose is to make some 
 assertion about something.*/
bool IsNameBob(string name)
{
   return name == "Bob";
}

/*Whereas this is not a predicate, as it's performing an action
 then evaluating to true if it succeeds. */
bool DoSomethingCool() {
   try 
   {
       ImDoingSomethingCool();
   }
   catch
   {
      return false;
   }
   return true;
}

Я понимаю, что я поставил здесь чисто разница в семантике, но это то, что этот вопрос был о праве? Семантика?

базовая оценка, которая приводит к логическому1 значение. Это часто относится к функции или объекту, который представляет оценку этого типа.

1: boolean используется свободно, не обязательно ссылаясь на переменные, объявленные bool или boolean.

в плане программирования; вопрос. Обычно общий вопрос с держателями мест (например,это и их) Это можно спросить о многих вещах.

  • и это красный?
  • и это собака?
  • и это принадлежащий их?

Я не знаю, если я говорю в правильном контексте, но есть Predicate класс В C#, который по существу является делегатом, который, учитывая элемент, определяет, соответствует ли объект набору критериев.

например, следующий метод, который имеет тип Predicate<int>, может использоваться для выбора всех целых чисел больше 5:

public bool MyPredicate(int x)
{
   return x > 5;
}

Я не уверен, как это переводится в более общий случай, но это начало. Для получения дополнительной информации,клик здесь.

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

вероятно, полезно рассмотреть грамматическое значение понятия для экстраполяции концепции программирования.

из Википедии:

в традиционной грамматике, предикат - один из двух главных частей предложение (другой субъект, который предикат изменяет). Для простое предложение "Джон [желтый]," Иоанн действует как субъект и является желтый действует как предикат, а последующее описание предмет: во главе с глаголом.

в современной лингвистической семантике, a предикат-это выражение, которое может быть правда в чем-то. Таким образом, выражения "желтый" или " похоже брокколи " верны те вещи это желтый или как брокколи, соответственно. Это понятие тесно связано связанный с понятием предиката в формальной логике, которая включает в себя более выражения, чем первый, например, например, существительные и некоторые виды прилагательные.

с точки зрения логики:

оператор в логике, который возвращает true или false.

с MathWorld

сначала давайте посмотрим на обычный словарь и посмотрим, что он говорит о том, что такое предикат:

Оксфордский Американский Словарь(1980):

n. часть предложения, которая говорит что-то о грамматическом предмете, как "коротка" в "жизнь коротка"

вот еще одно предложение: "Джон высок."предикат - это "высокий". Как вы можете видеть, он изменяет или описывает предмет, другой термин, похожий на predicate и adjective. По сути это модификатор.

технология IBM глоссарий предоставляет несколько определений, но больше всего подходит этот:

выражение, используемое в составе фильтра, состоящего из элемента данных, оператора и значения

вот пример использования SQL:

SELECT name
FROM tableA
WHERE name = "john";

предикат в этом коде будет name = "john". Оно имеет все компоненты определения IBM и также приспосабливает с регулярн определением предикат. Субъект является name и предикат, будучи name = "john".

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

http://www.tizag.com/sqlTutorial/sqlpredicates.php

С C++ Primer 5th (§10.3.1):

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

и главы Определение Терминов:

: функция, которая возвращает тип, который может быть преобразован в bool.

Comments

    Ничего не найдено.