Als Hobby-Programmierer fehlen mir einige Grundkenntnisse. In den letzten Tagen habe ich einige Dinge gelesen und das Wort "Prädikat" taucht immer wieder auf. Ich würde mich sehr über eine Erklärung zu diesem Thema freuen.
language-agnostic
Maciek
quelle
quelle
if (economy grows by 4%) then "sales forecast is valid" else "sales forecast is not valid"
. Das "Prädikat" ist hier der Test "Wirtschaft wächst um 4%", der wahrscheinlich als eine Funktion implementiert wird, die entweder wahr oder falsch zurückgibt. Vereinfacht ausgedrückt ist ein Prädikat die Bedingung in einer "if" -Anweisung (manchmal mit Nebenwirkungen).Antworten:
Die Definition eines Prädikats, das online in verschiedenen Quellen wie hier zu finden ist, lautet:
Referenzierung: Softwaretests. Von Mathew Hayden
quelle
Eine Aussage, die entweder wahr oder falsch ist. Bei der Programmierung handelt es sich normalerweise um eine Funktion, die für einige Eingaben einen Booleschen Wert zurückgibt.
Am häufigsten (ich denke) im Zusammenhang mit Funktionen höherer Ordnung verwendet. ZB
filter
ist eine Funktion in vielen Sprachen, die ein Prädikat und eine Liste als Argumente verwendet und die Elemente in der Liste zurückgibt, für die das Prädikat wahr ist.Beispiel in Javascript:
Die Funktion
lessThanTen
ist hier das Prädikat, das auf jedes Element in der Liste angewendet wird. Natürlich könnte ein boolescher Ausdruck anstelle einer Funktion als Prädikat verwendet werden, z. B.filter(true)
wird die vollständige Liste,filter(false)
eine leere Liste, zurückgegeben.quelle
Ein Prädikat ist nicht nur ein Ausdruck, der als wahr oder falsch bewertet wird, es steckt noch mehr dahinter. Der Begriff "Prädikat" bezieht sich auf einen Ausdruck, der bestimmt, ob etwas wahr oder falsch ist. Oder mit anderen Worten, es macht eine Behauptung und gibt basierend darauf wahr oder falsch zurück.
Zum Beispiel (in C #):
Ich verstehe, was ich hier gesagt habe, ist nur ein Unterschied in der Semantik, aber darum ging es bei dieser Frage, oder? Semantik?
quelle
const
Referenzen angegeben sind und deren Rückgabetyp a istbool
.In nicht programmierenden Begriffen; eine Frage . In der Regel eine allgemeine Frage mit Platzhaltern (wie es und sie ), die von vielen Dingen gestellt werden kann.
quelle
Eine grundlegende Auswertung, die einen booleschen 1- Wert ergibt. Es bezieht sich häufig auf eine Funktion oder ein Objekt, das eine Bewertung dieses Typs darstellt.
1: Boolescher Wert wird lose verwendet und bezieht sich nicht unbedingt auf deklarierte Variablen
bool
oderboolean
.quelle
Schauen wir uns zuerst ein reguläres Wörterbuch an und sehen, was es über ein Prädikat aussagt:
Oxford American Dictionary (1980):
Hier ist ein weiterer Satz: "John ist groß." Das Prädikat ist "ist groß". Wie Sie sehen können, ändert oder beschreibt es das Thema, ein anderer Begriff, der ähnlich ist,
predicate
istadjective
. Im Wesentlichen ist es ein Modifikator.Das Technologie- Glossar von IBM enthält mehrere Definitionen. Am besten passt jedoch diese:
Hier ist ein Beispiel mit SQL:
Das Prädikat in diesem Code wäre
name = "john"
. Es enthält alle Komponenten der IBM Definition und passt auch zur regulären Definition des Prädikats. Das Subjektwesenname
und das Prädikatwesenname = "john"
.quelle
Eine Funktion, die einen Booleschen Wert zurückgibt. Prädikate werden häufig in der Funktions- und OO-Programmierung verwendet, um Teilmengen von Werten aus Datenstrukturen auszuwählen , insbesondere Listen und andere Sammlungen. In den Standardbibliotheken für Haskell und Smalltalk finden Sie zahlreiche Beispiele.
quelle
Es ist wahrscheinlich nützlich, die grammatikalische Bedeutung des Konzepts zu berücksichtigen, um das Programmierkonzept zu extrapolieren.
Aus Wikipedia :
In logischen Begriffen:
von MathWorld
quelle
Ich weiß nicht, ob ich im richtigen Kontext spreche, aber es gibt eine
Predicate
Klasse in C #, die im Wesentlichen ein Delegat ist, der anhand eines Elements bestimmt, ob das Objekt eine Reihe von Kriterien erfüllt oder nicht.Mit der folgenden Methode, die vom Typ ist
Predicate<int>
, können beispielsweise alle Ganzzahlen größer als 5 ausgewählt werden:Ich bin nicht sicher, wie sich dies auf den allgemeineren Fall auswirkt, aber es ist ein Anfang. Für weitere Informationen klicken Sie hier .
quelle
ref
Typs) ändert, einen Bool zurückgibt und ihn einemPredicate
Delegaten zuweist . Wenn es möglich ist, macht derPredicate
Delegierte nicht viel Sinn.Ab C ++ Primer 5. (§10.3.1):
Ebenfalls aus dem Abschnitt Definierte Begriffe :
quelle
Ebenfalls etwas verwandt sind datenbankbezogene Prädikate:
http://www.tizag.com/sqlTutorial/sqlpredicates.php
quelle
Die beste SO-Antwort für Prädikate, die ich gefunden habe, ist eine doppelte Frage.
Zusammenfassend ist in natürlichen Sprachen ein Prädikat der Teil des Satzes, der ein Thema beschreibt.
Jane ist das Thema und
is tall
das Prädikat.In der Informatik sind wir nicht daran interessiert, eine Tatsache über ein Thema zu behaupten, sondern zu testen, ob etwas wahr oder falsch ist.
Hier ist Jane ein Objekt mit einer Prädikatmethode, die entweder true oder false zurückgibt.
quelle