81 votes

Qu'est-ce qu'un prédicat?

Étant un codeur amateur, il me manque des connaissances fondamentales. Depuis quelques jours, je lis des choses et le mot "prédicat" ne cesse de réapparaître. J'apprécierais beaucoup une explication sur le sujet.

À votre santé!

60voto

aehlke Points 4180

Expression logique qui renvoie TRUE ou FALSE, normalement pour diriger le chemin d’exécution en code.

44voto

JacquesB Points 19878

Un énoncé qui est vrai ou faux. Dans la programmation, il est généralement une fonction qui retourne un booléen pour une entrée.

Plus souvent (je suppose) utilisé dans le contexte de la fonction d'ordre supérieur. E. g. filter est une fonction dans de nombreuses langues qui prend un prédicat et une liste en argument, et renvoie les éléments de la liste pour laquelle le prédicat est vrai.

Exemple en javascript:

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

la fonction lessThanTen est le prédicat ici, qui est appliqué à chaque élément de la liste. Bien sûr, une expression booléenne peut être utilisé comme prédicat en place d'une fonction, d'e.g filter(true) sera de retour la liste complète, filter(false) d'une liste vide.

21voto

Ben Lesh Points 39290

Un prédicat n'est pas simplement une expression dont le résultat est vrai ou faux, il y a plus que cela. Le terme "prédicat" est utilisé pour désigner une expression qui détermine si quelque chose est vrai ou faux. Ou en d'autres termes, il fait une assertion et renvoie true ou false en fonction de cela.

Par exemple (en 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;
}
 

Je comprends que ce que j’ai mis ici est purement une différence de sémantique, mais c’est ce sur quoi cette question portait, non? Sémantique?

5voto

BCS Points 18500

En termes non programmés; une question . Généralement, une question générale avec des substituts (comme celui - ci et eux ) peut être posée à beaucoup de choses.

  • Est- ce rouge?
  • Est- ce un chien?
  • Est - il leur appartient?

4voto

C. Ross Points 10641

Une évaluation de base qui donne une valeur booléenne 1 . Il fait souvent référence à une fonction ou à un objet qui représente une évaluation de ce type.

1: booléen utilisé vaguement, ne faisant pas nécessairement référence aux variables déclarées bool ou boolean .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X