Gibt es (funktionale?) Programmiersprachen, in denen alle Funktionen eine kanonische Form haben? Das heißt, zwei beliebige Funktionen, die für alle Eingaben die gleichen Werte zurückgeben, werden auf die gleiche Weise dargestellt, z. B. wenn f (x) x + 1 und g (x) x + 2 zurückgibt, dann f (f (x) )) und g (x) erzeugen nicht unterscheidbare ausführbare Dateien, wenn das Programm kompiliert wird.
Was vielleicht noch wichtiger ist: Wo und wie finde ich weitere Informationen zur kanonischen Repräsentation von Programmen (Googeln mit "kanonischen Repräsentationsprogrammen" war weniger als erfolgreich)? Es scheint eine natürliche Frage zu sein, und ich fürchte, ich kenne einfach nicht den richtigen Begriff für das, wonach ich suche. Ich bin neugierig, ob es möglich ist, dass eine solche Sprache vollständig ist, und wenn nicht, wie ausdrucksstark eine Programmiersprache ist, die Sie haben können, während Sie eine solche Eigenschaft behalten.
Mein Hintergrund ist eher begrenzt, daher bevorzuge ich Quellen mit weniger Voraussetzungen, aber Verweise auf weiterführende Quellen können auch cool sein, da ich auf diese Weise weiß, worauf ich hinarbeiten möchte.