Die meisten Antworten hier scheinen zu lauten: "Weil es so definiert ist". Aber es gibt auch einen logischen Grund, warum das so definiert ist.
Bei der Definition einer Funktion sollten Sie darauf achten, dass die Funktion so allgemein wie möglich ist, damit sie auf eine möglichst große Anzahl von Fällen angewendet werden kann. Nehmen wir zum Beispiel an, ich möchte die Funktion Sum
Funktion, die die Summe aller Zahlen in einer Liste liefert. Was soll sie zurückgeben, wenn die Liste leer ist? Wenn Sie eine beliebige Zahl zurückgeben würden x
würden Sie die Funktion als die definieren:
- Funktion, die die Summe aller Zahlen in der angegebenen Liste zurückgibt, oder
x
wenn die Liste leer ist.
Aber wenn x
Null ist, können Sie ihn auch als
- Funktion, die Folgendes zurückgibt
x
plus die angegebenen Zahlen.
Man beachte, dass Definition 2 Definition 1 impliziert, aber 1 nicht 2 impliziert, wenn x
nicht Null ist, was an sich schon Grund genug ist, 2 gegenüber 1 zu bevorzugen. Aber beachten Sie auch 2 ist eleganter und ist an sich allgemeiner als 1. Es ist, als würde man einen Scheinwerfer weiter weg aufstellen, damit er einen größeren Bereich ausleuchtet. Sehr viel größer sogar. Ich bin selbst kein Mathematiker, aber ich bin mir sicher, dass sie eine Menge Verbindungen zwischen Definition 2 und anderen mathematischen Konzepten finden werden, aber nicht so viele im Zusammenhang mit Definition 1, wenn x
nicht Null ist.
Im Allgemeinen können und wollen Sie die Einzelelement (diejenige, die den anderen Operanden unverändert lässt), wenn Sie eine Funktion haben, die einen binären Operator auf eine Menge von Elementen anwendet und die Menge leer ist. Dies ist derselbe Grund, warum eine Product
Funktion gibt 1 zurück, wenn die Liste leer ist (beachten Sie, dass Sie auch einfach " x
plus" mit "ein Mal" in Definition 2). Und ist der gleiche Grund All
(was man sich als wiederholte Anwendung des logischen Operators AND vorstellen kann) ergibt true
wenn die Liste leer ist ( p && true
ist gleichbedeutend mit p
), und aus demselben Grund Any
(der OR-Operator) liefert false
.