Gibt es eine Möglichkeit, Logik-Programmierung (denke an Prolog) in Lua zu machen?
Insbesondere: Gibt es ein Lua-Modul für die Logikprogrammierung ( miniKanren wird die Implementierung am besten sein, aber es ist nicht unbedingt erforderlich) ? Weil ich keine finden konnte [1]. Und wenn nicht, gibt es irgendwelche bekannten (vorzugsweise erprobten) Wege, wie man Logik-Programmierung in Lua macht?
Außerdem: Gibt es jemanden, der versucht hat, so etwas wie Logikprogrammierung in Lua zu machen?
[1] Bis jetzt habe ich nur Blogpost Erwähnen der Möglichkeit, einen in Metalua zu schreiben, aber ich würde eher einen mit dem Standard Lua kompatibel sehen.
Es ist ein zukunfts Inferenzmaschine in Lua lua-Gesichter genannt. Neben MiniKanRen gibt es mehrere andere Logik-Programmiersysteme in JavaScript , die automatisch in Lua übersetzt werden könnte mit Castl .
ich auch hat einen Übersetzer , die eine Teilmenge von Lua in Prolog konvertiert. Angesichts dieser Eingabe:
%Vor%es wird diese Ausgabe in Prolog erzeugen:
%Vor%Logische Programmierung ist ein Paradigma und ist daher nur eine Form von spezifischer Syntax, in der Sie einige Fakten und Basisergebnisse zu logischen Gleichungen dieser Fakten angeben, während Fakten selbst Ergebnisse anderer Gleichungen sein könnten.
Lua ist nicht speziell dafür entworfen, aber Sie können dieses Verhalten leicht simulieren, indem Sie alle logischen Programmieroperatoren als Funktionen definieren - zB function and(...)
, die true
nur dann zurückgibt, wenn alle ihre Argumente wahr sind, usw., und Definieren macht Ihre "Fakten" als Tabelle mit fauler Bewertung von Metatable zur Verfügung gestellt.
Tags und Links logic-programming lua