λ-Kalkül ist ein formales System zur Funktionsdefinition, Funktionsanwendung und Rekursion, das die mathematische Grundlage der funktionalen Programmierung bildet.
Ich interessiere mich für die Alpha-Äquivalenzbeziehung in Sprachen mit variablen Bindungen, wie zum Beispiel: t := x:y 'x belong to y' | bot 'False' | t -> t 'implication' | Ax.t 'forall x, t' Oder der reine Lambda-Kalkül: t := x 'variable' | (t t) 'application ' | Lx.t 'abstraction: …
Es ist möglich, normale Begriffe, die Beta-Redex nicht als Unterausdruck enthalten, von anderen zu unterscheiden data WithBound a = Var | Other a data Normal a = Neutral (Neutral a) | Abstract (Normal (WithBound a)) data Neutral a = Variable a | Apply (Neutral a) (Normal a) Gibt es eine …
Ich implementiere einen Interpreter für Lambda-Kalkül und möchte jetzt den Gleichheitstyp hinzufügen. Die Einführungsregel dafür ist einfach, aber die Eliminierungsregel ist für mich ziemlich dunkel. Ich habe diesen Stackoverflow-Thread gefunden, aber er erklärt das J-Axiom nur in einem Satz. Wie kann es intuitiv verstanden werden?
Ich habe zwei verschiedene Lambda-Ausdrücke für die logische NOT-Funktion gesehen. Einer von ihnen wendet seinen Parameter nur auf Konstanten trueund falseintern in umgekehrter Reihenfolge an: NOT=λx.xfalsetrue=λx.x(λt.λf.f)(λt.λf.t)NOT=λx.xfalsetrue=λx.x(λt.λf.f)(λt.λf.t)NOT \;\;=\;\; \lambda x.\; x \; \mbox{false}\; \mbox{true} \;\;=\;\; \lambda x. \; x \; (\lambda t.\lambda f.f) \; (\lambda t. \lambda f. t ) und …
Hier ist etwas aus Slonnegers "Syntax und Semantik von Programmiersprachen": Eine Variable kann sowohl gebunden als auch frei im selben Lambda-Ausdruck vorkommen: Beispielsweise ist in λx.yλy.yx das erste Auftreten von y frei und die anderen beiden sind gebunden. Ich gehe davon aus, dass die freie Variable das y direkt nach …
Ich bin verwirrt über die folgende Behauptung: "Die einzigen Werte im untypisierten Lambda-Kalkül sind Lambda-Abstraktionen". Warum sind die anderen Begriffe keine Werte? Was bedeutet es für eine Lambda-Abstraktion, ein Wert zu sein? Das erste, was mir in den Sinn kam, war, dass vielleicht Lambda-Abstraktionen die einzig möglichen Normalformen sind, aber …
Ich mache eine Abschlussarbeit über den Nachweis der Richtigkeit des Programms zum Multiplizieren von 2 Matrizen mit Hoare-Logik. Dazu muss ich die Invariante für die verschachtelte Schleife für dieses Programm generieren: for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end …
Ich arbeite an Simon Peyton Jones '"Die Implementierung funktionaler Programmiersprachen" und auf Seite 20 sehe ich: WENN WAHR ((λp.p) 3) ↔ WENN WAHR 3 (pro β-Rot) (1) ↔ (λx.IF TRUE 3 x) (pro η rot) (2) ↔ (λx.3) (3) Die Schritte 1 bis 2 werden als η-Umwandlung erklärt. Aber von …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.