我有以下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],[]).
。
答案 0 :(得分:2)
您可以查看X
和first
中的second
是否为数字:
first-->[X], {number(X)}.
second-->[X], {number(X)}.