简单Prolog阶乘程序加载

简单Prolog阶乘程序加载,prolog,factorial,Prolog,Factorial,我正在使用SWI Prolog学习Prolog。 以下是我在文件fact.pl中的实践代码: 当我试图使用[fact.pl]加载此文件时,解释器给出以下错误: ?- [fact.pl]. ERROR: Syntax error: Operator expected ERROR: [fact ERROR: ** here ** ERROR: .pl] . 我不确定这是怎么发生的,我非常确定我所做的是标准的程序加载命令 任何人都见过这个,请帮忙,谢谢 不是吗?-[事实]。或者?-['fact.pl

我正在使用SWI Prolog学习Prolog。 以下是我在文件fact.pl中的实践代码:

当我试图使用[fact.pl]加载此文件时,解释器给出以下错误:

?- [fact.pl].
ERROR: Syntax error: Operator expected
ERROR: [fact
ERROR: ** here **
ERROR: .pl] .
我不确定这是怎么发生的,我非常确定我所做的是标准的程序加载命令


任何人都见过这个,请帮忙,谢谢

不是吗?-[事实]。或者?-['fact.pl']。当我编译你的程序时,它给了我以下答案

因子5,F。 F=120; 错

这意味着您的程序工作正常

阶乘N,F:-N为0,F为1,**!**;N>0,M是N-1,阶乘alm,G,F是N*G

包括切割操作符!。然后可以避免输出中的错误部分

使用consultfact或consult'fact.pl'

下面是另一个简单的程序

factorial(0,1). 

factorial(N,F) :-  
   N>0, 
   N1 is N-1, 
   factorial(N1,F1), 
   F is N * F1.
0的阶乘是1

如果N>0且N1为N-1,则N的阶乘为F,N1的阶乘为F1且F为N*F1

factorial(0,1). 

factorial(N,F) :-  
   N>0, 
   N1 is N-1, 
   factorial(N1,F1), 
   F is N * F1.