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 dem λx ist. und die gebundenen ys sind die λy.y, die ich intuitiv erfassen kann. Also würde ((λx.yλy.yx) a) b) auf (yλy.ya) b) und dann auf bba reduzieren? Kann jemand erklären, wie es dazu kam? Am Ende ist es der Ausdruck b zweimal. Kann jemand vielleicht mehr Beispiele für gebundene und freie Variablen liefern?
Antworten:
Ich habe Klammern hinzugefügt, um Das rote ist frei und das blaue ist frei gebunden durch die grüne Abstraktion. Ich denke nicht, dass es Sinn macht zu sagen, dass das grüne gebunden ist, aber es ist zusammen mit dem Lambda ein Bindemittel.
Wir können die Laufzeit einmal Beta reduzieren
aber nicht weiter, da keine verbleibenden Redexes mehr übrig sind.
quelle