Was sind SKI-Kombinatoren?

Direkt aus diesem Artikel:

Ich erwidere das Argument:

I x = x

Wenn K auf ein beliebiges Argument x angewendet wird, ergibt sich eine Ein-Argument-Konstantenfunktion K x , die bei Anwendung auf ein beliebiges Argument x zurückgibt:

K xy = x

S ist ein Substitutionsoperator. Es akzeptiert drei Argumente und gibt dann das erste auf das dritte angewendete Argument zurück, das dann auf das Ergebnis des zweiten auf das dritte angewendeten Arguments angewendet wird. Klarer:

S xyz = xz ( yz )

Hier sind also drei verschiedene Kombinatoren. Ich tue nichts, aber gib zurück, was du ihm übergeben hast, K nimmt zwei Argumente und gibt das erste als Ergebnis zurück, und S nimmt drei Argumente, nimmt das erste, wendet es auf das dritte an und wendet dann das Ergebnis auf das an Ergebnis der zweiten bis dritten angewendet.

Mal sehen, wie diese drei Kombinatoren ein Symbolpaar umkehren können.

S ( K ( SI )) Kαβ

Dieser Ausdruck kehrt das als Argumente übergebene αβ um. Wir bewerten zuerst das am weitesten links stehende S, indem wir K ( SI ) auf α anwenden, das erste und dritte Argument von erstem S, und dann das Ergebnis auf das Ergebnis von K α anwenden:

K ( SI ) α (Kα) β

Nun werten wir den linken K (SI) α aus, der uns den SI gibt, wie aus der Definition hervorgeht. Unabhängig von y, das in diesem Fall α ist, gibt K x zurück, das SI ist:

SI (Kα) β

Ok, wir kommen definitiv hierher. Wir werten nun also das linke S aus. Es hat die Argumente I, Kα, β, wendet also I auf β an und wendet es auf das Ergebnis der Anwendung von Kα auf β an:

Iβ (Kαβ)

Berechnen Sie das linke I, wenn wir nur β erhalten, und das rechte Kαβ das α zurückgibt, so dass wir unseren umgekehrten Ausdruck erhalten

βα

Insgesamt nicht sehr produktiv, aber los geht’s.

More Interesting

Wie nützlich wäre es als Student der Softwaretechnik, sich in Microsoft Azure oder AWS zertifizieren zu lassen?

Kann ich mich selbst zum Softwareentwickler ohne Mathematik machen?

Was ist der Unterschied zwischen einem Softwareprodukt und einer Softwarelösung?

Ich habe bereits einen Job im Bereich Software Engineering, aber keinen Abschluss. Was sind die Vorteile eines CS / SWE-Abschlusses für mich?

Gibt es ein Etsy-Analogon für Programmierer?

Warum eine relationale Datenbank einer nicht relationalen Datenbank vorziehen, wenn Konsistenz und Verfügbarkeit keine Faktoren sind?

Welche Tools / Software verwendet Ihre Schule für tägliche Entlassungen / Carlines?

So vergleichen Sie diese Jobs: Programmierung (oder Software-Engineering) mit Elektronik-Engineering

Wie lernen Programmierer, die mit einer Sprache vertraut sind, eine andere? Ein Buch zu lesen, um neue Syntax zu lernen, ist langweilig.

Softwaretests: Ich arbeite als manueller Softwaretester und möchte jetzt ein Automatisierungstool erlernen. Meine Codierungsfähigkeiten sind sehr einfach. Was wäre ein gutes Testautomatisierungstool, das nicht viel Programmierwissen erfordert?

Was ist die Wissenslücke in Image Captcha?

Meine Seriennummer an der Dhaka University ist ungefähr 4000. Kann ich in die Softwareentwicklung einsteigen?

Was ist Happy Path Testing und Mid Level Testing beim Testen von Software?

Gibt es eine "Made In America" ​​-Zertifizierung für Software?

Warum zahlt Robert Bosch für die Stelle als Associate Software Engineer als Neuling vergleichsweise wenig?