Lua中的逻辑编程?

Lua中的逻辑编程?,lua,logic-programming,Lua,Logic Programming,在Lua中有没有一种方法(想想Prolog) 特别是:是否有用于逻辑编程的Lua模块(实现将是最好的,但不是严格要求)?因为我找不到[1]。如果没有,是否有任何已知(最好是尝试过的)方法可以在Lua中进行逻辑编程 还有:有没有人尝试过在Lua中进行逻辑编程 [1] 到目前为止,我只提到了在Metalua中编写一个的可能性,但我更希望看到一个与标准Lua兼容。逻辑编程是一个范例,因此只是一种特定语法形式,您可以在其中陈述一些事实,并根据这些事实的逻辑等式得出结果,而事实本身可能是其他方程式的结果

在Lua中有没有一种方法(想想Prolog)

特别是:是否有用于逻辑编程的Lua模块(实现将是最好的,但不是严格要求)?因为我找不到[1]。如果没有,是否有任何已知(最好是尝试过的)方法可以在Lua中进行逻辑编程

还有:有没有人尝试过在Lua中进行逻辑编程



[1] 到目前为止,我只提到了在Metalua中编写一个的可能性,但我更希望看到一个与标准Lua兼容。

逻辑编程是一个范例,因此只是一种特定语法形式,您可以在其中陈述一些事实,并根据这些事实的逻辑等式得出结果,而事实本身可能是其他方程式的结果


Lua并不是专门为此设计的,但您可以通过将所有逻辑编程运算符定义为函数来轻松模拟此行为,即,
函数和(…)
,只有当其所有参数都为真时才会返回
true
,等等,并定义“事实”作为metatable提供的具有惰性计算的表。

Lua中有一个称为的前向链接推理引擎。除了MiniKanRen之外,还有一些可以使用

我还将Lua的一个子集转换为Prolog。鉴于这一投入:

function print_each(The_list)
    for _, Item in pairs(The_list) do
        print(Item)
    end
end
它将在Prolog中生成此输出:

print_each(The_list) :- 
    forall(member(Item,The_list),(

        writeln(Item)
    )).
ASP会有帮助吗


检查手册第3.1.14节

是否所有编程逻辑都不正确?您可以为不熟悉逻辑编程的人详细介绍一下。我相信你可以用元表来编造一些东西。好的,我已经添加了一些关于逻辑编程的提示。。。你知道,我可以尝试一些类似于玩元表的东西,但首先我想知道在我之前是否有其他人尝试过这样做……第二次在google上点击“Lua”逻辑编程“library”可以得到一个关于Lua中多范式编程的pdf,第5节中有一些对prolog的引用。虽然不是一个完整的库(似乎没有),但它可能会给您一些提示。是的,我以前见过,但谢谢:-)。该文本给出了一些要点(虽然没有实质性内容),但似乎在Lua world中还没有更多关于逻辑编程的文章……您可能会发现本文很有用: