9
votes

Programmation logique à Lua?

Y a-t-il un moyen de faire Programmation logique (Pensez à Prolog) à Lua?

En particulier: y a-t-il un module LUA pour la programmation logique ( Minikanren Implénatisation sera le meilleur, mais ce n'est pas 't strictement requis)? Parce que je n'ai pas pu trouver [1]. Et sinon, existe-t-il des moyens connus (de préférence essayé) comment faire une programmation logique à Lua?

Aussi: Y a-t-il quelqu'un qui a essayé de faire quelque chose comme la programmation logique à Lua?


[1] Jusqu'à présent, j'ai trouvé seulement Blog post mentionner la possibilité d'écrire un à Metalua, mais je préférerais voir une compatible avec la Lua standard.


6 commentaires

Tout est-il pas la logique de programmation? Vous pouvez élaborer un peu pour les personnes qui ne connaissent pas la programmation logique. Je suis sûr que vous pouvez concocter quelque chose en utilisant des métabiles.


Ok, j'ai ajouté des notes sur la programmation logique ... Vous savez, je peux essayer quelque chose comme jouer avec des métabiles, mais au début je voulais savoir si quelqu'un d'autre a essayé de faire quelque chose comme ça devant moi ...


Deuxième frappe sur Google pour "Lua" Programmation logique "Bibliothèque" vous donne un PDF sur plusieurs programmations paradigmes à Lua, où la section 5 a des références à Prolog. Bien que pas une bibliothèque complète (ne semble pas y avoir une), cela pourrait vous donner des indications.


Oui, j'ai déjà vu ça avant, mais merci :-). Ce texte donne quelques points (bien que rien de substantiel), mais il semble vraiment qu'il n'y ait rien de plus écrit sur la programmation logique à Lua World .....


Vous trouverez peut-être cet article utile: Fawkesrobotics.org/publications/2010/aaai2010Spring- golog-lu a


@ALEXANDERGLADYSH Je vais vérifier cela. Merci!


3 Réponses :


-1
votes

La programmation logique est un paradigme et n'est donc qu'une forme de syntaxe spécifique où vous indiquez des faits et des résultats de base sur l'équation logique de ces faits, tandis que les faits eux-mêmes pourraient être des résultats d'autres équations.

Lua n'est pas spécialement conçu pour cela, mais vous pouvez facilement simuler ce problème en définissant tous les opérateurs de programmation logique en tant que fonctions - c'est-à-dire fonction et (...) qui retournerait vrai < / Code> Seulement si tous ses arguments sont vrais, etc. et définissent vos "faits" comme une table avec une évaluation paresseuse fournie par MetaTable.


0 commentaires

1
votes

Il y a un moteur d'inférence en chaînage en avant à Lua appelé lua-faces . En plus de Minikanren, il y a Plusieurs autres systèmes de programmation logique en JavaScript qui pourraient être automatiquement traduits en Lua en utilisant CASTL .

J'ai aussi a écrit un traducteur qui convertit un sous-ensemble de Lua en prolog. Compte tenu de cette entrée: xxx

Il produira cette sortie dans prolog: xxx


0 commentaires

0
votes

0 commentaires