Wie schreibe ich eine leere Liste mit S, K und I Kombinatoren?

8

Ich weiß das:

%Vor%

Ich möchte eine solche Liste schreiben

%Vor%

, was ungefähr so ​​aussehen wird:

%Vor%

Aber ich weiß nicht, wie man "Null" in S, K und I-Kombinatoren kompiliert. Weiß jemand?

Vielen Dank im Voraus, Edwin Jose Palathinkal

    
louzer 14.08.2009, 10:58
quelle

1 Antwort

8

Das einzige, was Sie von einer nil -Darstellung brauchen, ist, sie identifizieren zu können - schreiben Sie ein null? -Prädikat, das für alle anderen Paare "wahr" für nil und "falsch" zurückgibt. Dies bedeutet, dass die Antwort von Ihrer Darstellung von wahr / falsch abhängt. Mit der allgemeinen Wahl von λxy.x und λxy.y ist eine bequeme Kodierung für nil λf.[true] . Das Übersetzen zu SKI ist jetzt sehr einfach (und ich werde es hier nicht machen, da es wie Hausaufgaben aussieht ...).

(Auch das Implementieren eines null? -Prädikats mit dieser Repräsentation für nil ist eine gute Übung.)

    
Eli Barzilay 15.08.2009, 21:28
quelle