C中的逻辑编程

pmi*_*sev 5 theory planning artificial-intelligence c99

我试图在C中实现一些AI规划算法,但却陷入了基本概念:)
在跳到主要问题之前,我尝试实现一些支持命题逻辑的小框架:

FORMULA f = PROPOSITION(a + 3 > 0);
FORMULA g = PROPOSITION(is_smaller_than(b, c));
f = AND(NOT(f), g);
Run Code Online (Sandbox Code Playgroud)

现在,问题在于我不想在定义公式时评估像'a + 3> 0'这样的表达式,而是在稍后的某个阶段:

bool res = EVALUATE(f);
Run Code Online (Sandbox Code Playgroud)

我想在这种情况下闭包会很方便,但不幸的是我也喜欢坚持使用C99.

任何的想法 ?
把它扩展到谓词逻辑怎么样?

最终目标(理想情况下)是构建一个AI规划库,它可以直接插入应用程序,而不是像STRIPS程序字符串那样接收问题.

谢谢

pmi*_*sev 1

好的,

如上所述,我已经通过使用带有方法指针和数据的结构解决了这个问题。这是在 C 中模拟闭包的最常见方法。

我的实现可以在这里找到: https: //github.com/pmilosev/clumsy