在Prolog中计算球体积

时间:2015-10-19 20:00:37

标签: prolog

如何在Prolog中计算球体积?

我有这样的代码:

area(R,P):-P is 3.14 * R *R.
vol(R,P,V):-V is 4/3 * R * area(R,P).

我在尝试编译上面的代码时遇到了这样的错误:

fatal error: unknown operation in arithmetic expression (area/2)
compilation failed

这段代码有什么问题,这是否意味着我不能在另一个内部使用一个谓词?我正在使用gprolog

1 个答案:

答案 0 :(得分:1)

您收到此错误是因为gnu-prolog不允许添加新的算术函数(除非您重新编译其'kernel')。

无论如何,您可以先计算区域然后使用该区域计算音量来计算音量。即:

area(R,P):-P is 4.0 * 3.14 * R *R.

vol(R,V):-
  area(R,P),
  V is 1/3 * R * P.