Qu'est ce qu'un prédicat?
Être un amateur de coder, je suis en manque certaines connaissances fondamentales. Pour les deux derniers jours, j'ai lu certaines choses, et le mot "prédicat" ne cesse de réapparaître. Je serais très reconnaissant une explication sur le sujet.
- Voici mon article sur ce qui n'est pas un prédicat: blogs.msdn.com/ericlippert/archive/2008/08/19/... Profitez-en!
- Les prédicats sont utilisés en tant que tels, beaucoup plus dans la Base de données Relationnelle de l'arène, que dans les langages de programmation.
- L'exemple utilisé dans la définition de dictionary.cambridge.org/us/dictionary/english/predicated est "de La prévision des ventes est fondée sur l'hypothèse que l'économie va croître de quatre pour cent." En termes de programmation, cela peut être représenté par un pseudo-code
if (economy grows by 4%) then "sales forecast is valid" else "sales forecast is not valid"
. Le "prédicat" voici le test de la "croissance économique de 4%", ce qui serait susceptible d'être mis en œuvre comme une fonction qui renvoie vrai ou faux. Simplifié, un prédicat est l'état dans une instruction "if" (parfois avec des effets secondaires).
Vous devez vous connecter pour publier un commentaire.
La définition d'un prédicat, qui peuvent être trouvés en ligne dans diverses sources telles que les ici, est:
Référencement: Logiciel De Test. Par Mathew Hayden
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 en prédicat et un liste comme arguments, et renvoie les éléments de la liste pour laquelle le prédicat est vrai.Exemple en javascript:
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.gfilter(true)
sera de retour la liste complète,filter(false)
une liste vide.Un prédicat n'est pas simplement une expression qui est évaluée à vrai ou faux, il n'y a plus que ça. Le terme de "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 affirmation et renvoie true ou false selon que.
Par exemple (en C#):
Je comprends ce que j'ai mis ici est purement une différence de sémantique, mais c'est ce que cette question a été sur le droit? La sémantique?
const
références, et dont le type de retour est unbool
.Dans la non programmation de termes; une question. Généralement une question d'ordre général avec les détenteurs de place (comme il et eux) qui peut être demandé à beaucoup de choses.
Une base de l'évaluation que les résultats dans un booléen1 de la valeur. Il fait souvent référence à une fonction ou un objet qui représente une évaluation de ce type.
1: booléen utilisé de façon imprécise, pas nécessairement référence à des variables déclarées
bool
ouboolean
.D'abord jetons un coup d'oeil régulier d'un dictionnaire et voir ce qu'il dit à propos de ce qu'est un prédicat est:
Oxford American Dictionary(1980):
Voici une autre phrase: "Jean est grand." le prédicat est "grand". Comme vous pouvez le voir il modifie ou décrit le sujet, un autre terme qui est similaire à
predicate
estadjective
. En substance, c'est un modificateur.IBM technologie glossaire fournit plusieurs définitions, mais, celui qui convient le mieux est celui-ci:
Voici un exemple d'utilisation de SQL:
Le prédicat dans ce code serait
name = "john"
. Il dispose de toutes les composantes de la société IBM définition et correspond également à la définition du prédicat. Le sujetname
et le prédicat étantname = "john"
.Une fonction qui retourne un booléen. Les prédicats sont beaucoup utilisés fonctionnelle et la programmation orientée-objet pour sélectionner des sous-ensembles de valeurs de structures de données, surtout des listes et d'autres collections. Vous trouverez de nombreux exemples dans les bibliothèques standard pour Haskell et Smalltalk.
Il est probablement utile de prendre en compte le sens grammatical de la notion d'extrapoler le concept de programmation.
À partir de wikipedia:
Dans la logique termes:
de MathWorld
Je ne sais pas si je parle dans le contexte correct, mais il y a un
Predicate
classe en C# qui est essentiellement un délégué qui, étant donné un élément, détermine si l'objet répond à un ensemble de critères.Par exemple, la méthode suivante, qui est de type
Predicate<int>
, pourraient être utilisés pour sélectionner tous les entiers supérieurs à 5:Je ne suis pas sûr de savoir comment cela se traduit dans le cas général, mais c'est un début. Pour plus d'info, cliquez ici.
ref
type) et renvoie un booléen, et l'attribuer à unPredicate
délégué. Si c'est possible, alors laPredicate
délégué n'a pas beaucoup de sens.De C++ Primer 5e (§10.3.1):
Également de chapitre Termes Définis section:
Aussi un peu lié, il y a de la base de données liées à des prédicats:
http://www.tizag.com/sqlTutorial/sqlpredicates.php