prolog:reduce然后写一个谓词的值

时间:2010-05-18 13:59:58

标签: prolog

这是我正在撰写的一些代码

assert(bar(foo)),
assert(foo(bar-5)),

我不确定它是否有效。我试图让它将foo减少5.我需要一种方法来写foo的值,但是还没找到方法。 write('foo is' + foo)对我来说是合乎逻辑的方式,但似乎不起作用。

1 个答案:

答案 0 :(得分:1)

为了能够使用事实的价值,你必须先将其统一起来。统一是将未绑定的变量作为参数传递给谓词,在我们的例子中是bar(Moo)

facts
    bar(integer)
    foo(integer)

goal
    assert(bar(42)),
    bar(Moo),
    Baz = Moo - 5,
    assert(foo(Baz)),
    write(Baz).