我有以下Prolog代码。
expression-->first,operator,second.
first-->[X].
operator-->['+'];['-'].
second-->[X].
编译后,机器在命令行中对以下类型的查询作出 "是 "的回应。
| ?- expression([5,'+',3],[]).
| ?- expression(['a','-','b'],[]).
| ?- expression([2.8,'+',3.2],[]).
我如何将其限制在数字范围内?因此,只有涉及数字的表达式才应该是真实的,比如这个。| ?- expression([92,'+',23.48],[]).
.
您可以检查是否 X
在 first
和 second
是数字。
first-->[X], {number(X)}.
second-->[X], {number(X)}.