Prolog结果不存储

时间:2018-04-30 17:24:48

标签: prolog

问题 我希望从规则中获得额外的存储

代码:

gresult:-
    write('enter first number'),nl,
    read(P),nl,
     write('enter second number'),nl,
    read(Q),nl,
     write('adition result is'),nl,
     fresult(P,Q),nl,
     write(fresult).

fresult(P,Q):-
       P+Q.

1 个答案:

答案 0 :(得分:0)

如果您希望fresult“返回”某个值,则必须为其添加一个参数:

fresult(P, Q, Sum) :-
    Sum is P + Q.

请注意,您必须使用is运算符强制Prolog将P + Q视为算术表达式并将其评估为数字。

然后你可以这样称呼它:

gresult :-
    ...,
    fresult(P, Q, Sum),
    write(Sum),
    nl.