'
ist einfach ein anderes Identifizierungszeichen wie jedes andere. foldl'
ist eine vollständig separate Funktion von foldl
; es könnte genauso gut strictFold
heißen. Es heißt, weil es eng mit foldl
verwandt ist: es ist ein foldl
, bei dem der Akkumulator bei jedem Schritt ausgewertet wird, so dass sich große Thunks nicht aufbauen. Zum Beispiel wird foldl (+) 0
den Stapel auf einer großen Liste überlaufen lassen, aber foldl' (+) 0
wird nicht.
Im Allgemeinen bedeutet das Suffix eines '
eines von drei Dingen: foo'
ist entweder eine Helferdefinition, die zum Definieren von foo
verwendet wird, eine modifizierte Version von foo
(also state
, state'
und state''
könnten ein Anfangszustand und zwei aktualisierte Versionen sein) oder eine strikte Version von foo
.
Nichts, zumindest nicht in diesem Zusammenhang, da ein Apostroph ein gültiges Identifizierungszeichen ist (siehe diese Antwort für weitere Details.)
In den Standardbibliotheken ist es eine Konvention, dass eine strikte Version bestimmter Funktionen von der Standardversion (faul) durch einen Apostroph wie foldl'
(strict) und foldl
(faul) unterschieden wird. Das hat nichts damit zu tun, dass der Apostroph etwas Besonderes ist, es ist nur eine Konvention.
In Haskell ist es nur ein anderes Zeichen, um die Bezeichner zu unterscheiden. Der Bezeichner heißt dann fold prime
, wird aber üblicherweise genauso verwendet wie es in der Mathematik verwendet .
Es gibt ein Hack-Modul (ich vergesse das), das eine Art Mitgliedschaftstest (oder irgendein anderes Prädikat) in etwas beinhaltet. Die Testfunktion heißt "ist":
%Vor%und aus Gründen der Bequemlichkeit ist auch die boolsche Negation der Funktion vorgesehen:
%Vor%Ich fand es lustig, als ich es das erste Mal sah. Apostroph ist nur ein anderes Zeichen in der Kennung.
Tags und Links haskell