我对 Prolog 程序员有一个非常简单的问题。这应该很容易,但我对这种语言没有任何经验,所以请帮忙。我正在尝试在 Prolog 中解释一些简单的编程语言。在这种语言中,我可以有两种类型的变量——简单变量和数组变量。我有一个计算给定变量值的函数:
%calc(+var, +state, -result)
变量可以是简单的变量,也可以是x
数组变量,如array(ident, index)
. 我不知道应该如何在 Prolog 中编写该函数,因此它对常规变量和数组变量做了不同的事情。我想出了这样的事情:
calc(array(Ident,I), S, R) :- calculating R for array var, !.
calc(Ident, S, R) :- calculating R for regular var.
这行得通,但必须有一些更好的方法。