Ich habe das Buch Struktur und Interpretation von Computerprogrammen studiert und in Abschnitt 1.1.5 Das Substitutionsmodell für die Verfahrensanwendung erklärt der Autor die Konzepte der normalen Ordnung und der anwendbaren Ordnung , die ich meines Erachtens gut verstanden habe.
Nun, ich nehme einen Kurs über Coursera genannt Funktion Programmierprinzipien in Scala und es der Professor Martin Odersky (die viel von seinem Kurs basiert auf dem Buch oben zitierten) erklärt die gleichen Konzepte unter den Namen von Call-by-Name und Call- nach Wert .
In seinem Kurs sagt Professor Odersky, dass das Substitutionsmodell auf dem Lambda-Kalkül basiert. Deshalb habe ich ein Buch in meiner Bibliothek konsultiert. Eine Einführung in die funktionale Programmierung Obwohl Lambda-Kalkül und auf Seite 22 definiert der Autor die Begriffe als anwendbare Reihenfolge und normale Reihenfolge . Interessanterweise sagt er in seiner Definition, dass die anwendbare Reihenfolge wie Pascals Call-by-Value ist, während die normale Reihenfolge wie Algols Call-by-Name ist.
Die Verwendung der Worte "ist wie" in seiner Erklärung hat mich zweifeln lassen. Also meine Fragen:
- Sind diese beiden Begriffe gleichwertig oder gibt es subtile Unterschiede?
- Kann ich das eine oder andere austauschbar verwenden, ohne das Risiko einzugehen, einen Fehler in der Bedeutung zu machen, die sie vermitteln?
- Gibt es Gründe, die Sie kennen und die die Existenz unterschiedlicher Terminologie rechtfertigen, um sich auf dasselbe zu beziehen?