Funktor
Das Wort „Funktor“ ist ein Nomen, sein Genus ist maskulin, Genitiv: des Funktors, Plural: die Funktoren, Aussprache: ['fʊŋkto:ɐ].
Herkunft
Der Begriff "Funktor" wurde 1934 von dem deutschen Philosophen Rudolf Carnap in „Logische Syntax der Sprache “ geprägt, der damit das Zeichen einer Funktion (eine syntaktische Entität) in einer Anwendung bezeichnen wollte. [3]
Bedeutung
In „Einführung in die symbolische Logik und ihre Anwendungen “ (1954) definiert Carnap einen n -stelligen Funktor als "jedes Zeichen, dessen volle Anwendungen (auf n Argumente) keine Sätze sind". Der Ausschluß von Sätzen (Formeln) bewirkt, daß Prädikate (Symbole für Relationen) keine Funktoren sind.
Der Begriff impliziert vielleicht die klassische funktionale Präfix-Schreibweise (so daß ein zwischengestellter Operator kein Funktor ist). [3] Allerdings gibt es auch Fälle, in denen der Begriff für Operatoren verwendet wird.
In die Kategorietheorie wurde der Begriff 1972 von Samuel Eilenberg und Saunders Mac Lane eingeführt, um eine bestimmte Art von Abbildungen zwischen Kategorien zu bezeichnen. Vielleicht sollte damit der Begriff „Funktion“ vermieden werden, weil bei einer "Funktion", die eine Gruppe auf eine andere abbildet, möglicherweise problematische Begriffe (wie „Menge aller kommutativen Gruppen“) vorkommen können. [3]
Der englische Begriff “functor ” wird in Wörterbüchern als "One that performs an operation or a function " [1] oder "something that performs a function or an operation (1935) " [2] erklärt.
In der Sprachwissenschaft bezeichnet der Begriff ein Wort (“function word ”), das wenig inhaltliche Bedeutung hat, aber eine grammatische Beziehung ausdrückt, wie eine Präposition, Konjunktion oder einen Artikel. [1]
Für die C++ -Programmierung wurde der Begriff vermutlich durch Coplien [4] populär gemacht. Die C++ -Norm ISO/IEC 14882:1999(E) spricht allerdings immer nur von einem “function object ”. Der Begriff wurde aber auch schon früher für jeweilige Zwecke in LISP, Smalltalk, Prolog und ML verwendet. In Haskell gibt es eine Standard-Klasse "Functor". Auch in Java wird der Begriff für ein Objekt verwendet, dessen Hauptaufgabe es ist, eine bestimmte Operation zu implementieren—gelegentlich auch für eine entsprechende Schnittstelle.
Wenn mit „Funktor“ in einer Programmiersprache eine Entität gemeint ist, die dort nicht als Funktion gilt, aber in einer Anwendung syntaktisch wie eine Funktion verwendet werden kann (wie in C++ ), so ist diese Verwendung in Nähe zur Carnap schen Definition, denn ein solcher Funktor erscheint syntaktisch wie ein Funktionssymbol (obwohl man in C++ darin ein Exemplar einer Klasse sieht). Allerdings spricht man in C++ ,—im Gegensatz zu Carnap —auch dann von einem Funktor, wenn das Symbol wie ein Prädikat verwendet wird, jedoch nicht, wenn es wirklich für eine C++ -Funktion steht.
Angaben und Kerne
Da es sonst keinen gebräuchlicheren Oberbegriff für Funktoren (im Sinne Carnap s) und Prädikate gibt, übernimmt dieser Text die Begriffe „Kern“ und „Satellit“ aus der Linguistik.
Eine Angabe besteht aus einem Kern und aus Satelliten. Dabei gibt der Kern meistens die Gattung des Angegeben an, während die Satelliten ein Individuum dieser Gattung genauer beschreiben.
Es gibt verschiedene Schreibweisen solcher Angaben.
Die weitverbreiteteste Schreibweise ist wohl die Präfix-Klammer-Schreibweise, dabei folgen dem Kern in Klammern eingeschlossene Satelliten .
- 〈Präfix-Klammer-Angabe 〉 ::=
- 〈Kern 〉 "(" [〈Satelliten 〉] ")".
Die Klammern können auch entfallen, so bezeichnet "sin x " eine Angabe mit "sin" als Kern und "x " als Satellit. An diesem Beispiel kann die Terminologie auch noch einmal plausibel gemacht werden: "sin x " legt einen Wert fest, dieser Wert ist ein Sinus-Wert (das ist also seine Gattung oder sein Kern) und zwar der Sinus-Wert von "x " (genaue Bestimmung dieses speziellen Sinus-Wertes durch einen Satelliten).
Terme sind Angaben mit einer Funktion als Kern und entsprechen den Nominalphrasen der deutschen Sprache. Man führt die Schreibweise "f (x )" dann ein, indem erklärt wird: „Ist "f " ein Funktionszeichen und "x " ein Term, dann ist "f (x )" ein Term.“
Formeln sind Angaben mit einem Prädikat als Kern und entsprechen den Sätzen der deutschen Sprache. Man führt die Schreibweise "P (a )" dann ein, indem erklärt wird: „Ist "P " ein Prädikatzeichen und "a " ein Term, dann ist "P (a )" eine Formel.“
Prädikate und Funktionen können als Kerne einer Formel bzw. eines Terms auftreten, während die Argumente dieser Formel bzw. dieses Terms die Satelliten dieser Angabe bilden.
Quellen
- [1]
- The American Heritage® Dictionary of the English Language, Fourth Edition.
- http://www.bartleby.com/61/
- [2]
- Merriam-Webster Online
- http://www.m-w.com/home.htm
- [3]
- Earliest Known Uses of Some of the Words of Mathematics (F)
- http://members.aol.com/jeff570/f.html
- [4]
- Advanced C++ Programming Styles and Idioms
- James O. Coplien
- Addison Wesley
- 1992
- ISBN 0-201-54855-0
- 500 pages