Function 计算面积的简单prolog函数

Function 计算面积的简单prolog函数,function,prolog,Function,Prolog,嗨,我是prolog新手,我需要编写一个名为rect\u area(Width,Height,area)的函数来计算矩形的面积,例如: ?- rect_area(2, 3, A). A = 6. 以下是我的尝试: rect_area(Width, Height, Area):- read(Width), read(Height), Area is Width * Height, write(Area),nl. 但它不起作用。我运行它并在侦听器中输入 ?- rect_area

嗨,我是prolog新手,我需要编写一个名为
rect\u area(Width,Height,area)
的函数来计算矩形的面积,例如:

?- rect_area(2, 3, A).

A = 6.
以下是我的尝试:

rect_area(Width, Height, Area):-
    read(Width), read(Height),
    Area is Width * Height, write(Area),nl.
但它不起作用。我运行它并在侦听器中输入

?- rect_area(2, 3, A).
没有返回


我不知道为什么会这样。如何修复它?

如果您提供宽度和高度,则无需阅读它们。您可能不需要打印区域;当rect_区域完成时,它将绑定到值并报告。

谢谢您的回答。我想输入宽度和高度的值,并得到面积作为返回值。比如我输入?-rect_区域(10,10,A)。我的expexted输出是“A=100”。如果我简单地把这个函数写成“rect_区域(Width,Height,area):-area是Width*Height”,那么输出也是“no”。如何修复它?@user3221327请准确显示您所做的操作(编辑并将其添加到原始帖子中,而不是在评论中)。如果我定义
rect\u区域(宽度、高度、面积):-区域是宽度*高度。
然后查询
rect\u区域(10,10,A)。
我得到
A=100
。您是从文件加载谓词还是以
[user]
模式输入谓词?