Logische Programmierung in Lua?

8

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.

    
mnicky 18.02.2012, 08:34
quelle

4 Antworten

3

Die Zeiten, in denen sie sich verändern, und es gibt jetzt mehrere Implementierungen von Minikanren in Lua:

mnicky 24.06.2015, 22:16
quelle
5
lhf 28.08.2012 16:04
quelle
1

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%     
Anderson Green 13.08.2016 23:20
quelle
-1

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.

    
Oleg V. Volkov 28.08.2012 16:01
quelle

Tags und Links