Ich beginne im nächsten Herbst einen Bachelor-Informatikkurs, kann aber λ-Kalkül im Kontext der funktionalen Programmierung nicht wirklich verstehen. Ich kann dies völlig falsch interpretieren, aber basierend auf dieser Definition aus der Stanford Encyclopedia of Philosophy ist es nur eine weitere Notation für Funktionen.
Wenn es nur so ist , warum ist es vorteilhaft, λ-Kalkül gegenüber regulären Funktionsnotationen zu verwenden, um die Laufzeit des Algorithmus zu berechnen?
Antworten:
In der Informatik wollen wir den Quellcode mit mathematischer Genauigkeit analysieren und verstehen. Nur so können interessante Eigenschaften (z. B. Terminierung) mit absoluter Sicherheit nachgewiesen werden. Dafür brauchen wir für jedes Konstrukt eine Sprache mit einer sehr genau definierten Bedeutung.
quelle
Die Verwendung von Lisp oder der funktionalen Programmierung bietet viele Vorteile, und die Berechnung der Laufzeit des Algorithmus ist nur eine Möglichkeit (obwohl es hilfreich wäre, wenn Sie dafür einen Verweis zitieren würden). da es bereits in funktionaler Notation ist, kann das Bestimmen der Formeln für die Laufzeit über Induktions- oder Wiederholungsbeziehungen manchmal eine stärkere oder offensichtlichere Beziehung zum ursprünglichen Code haben. Andere Arten der Analyse des Algorithmus werden ebenfalls vereinfacht.
Ein weiterer Hauptvorteil ist die syntaktische Einfachheit. Parser für andere Sprachen sind sehr komplex, aber die Lisp-Parser sind sehr einfach. Daher ist Lisp eine großartige Sprache, um die Theorie des Parsens zu studieren.
Ein weiterer wichtiger Aspekt ist die Analyse von Software eher aus einer logischen oder mathematischen Perspektive als aus einer "computerwissenschaftlichen" Perspektive.
Wie die andere Antwort zeigt, dreht sich bei Lisp alles um Rekursion statt um Iteration, und Rekursion ist das Herzstück von CS.
[1] Struktur und Interpretation von Computerprogrammen von Abelson & Sussman
quelle