0

我有以下 Prolog 代码:

expression-->first,operator,second.
first-->[X].
operator-->['+'];['-'].
second-->[X].

编译后,机器会在命令行中响应以下类型的查询“yes”:

| ?- expression([5,'+',3],[]).
| ?- expression(['a','-','b'],[]).
| ?- expression([2.8,'+',3.2],[]).

我如何将其限制为仅数字?因此,只有涉及数字的表达式才应该是真实的,例如:| ?- expression([92,'+',23.48],[])..

4

1 回答 1

2

您可以检查是否Xinfirstsecondare 数字:

first-->[X], {number(X)}.

second-->[X], {number(X)}.
于 2012-12-12T16:43:45.260 回答