Turbo Prolog: 420 PROLOG.ERR missing



我是Prolog的新手。我试图找到一个斐波那契级数的第n项和。

/* Fibonacci */
predicates
fibonacci(integer, integer, integer)
clauses
fibonacci(1,1,1):-!.
fibonacci(2,1,2):-!.
fibonacci(N, Term, Sum):-
N1 = N - 1,
N2 = N - 2,
fibonacci(N1, Term1, Sum1),
fibonacci(N2, Term2, Sum2),
Term = Term1 + Term2,
Sum = Term + Sum.

然而,在Turbo Prolog中编译时,上缺少420 Prolog.ERR

fibonacci(N2,Term2,Sum2),

为什么会发生这种情况?感谢您的帮助。提前谢谢。

这真的是整个错误消息吗?它没有说明缺少什么

EDIT:根据下面的评论,Turbo Prolog的=确实做到了对应于is/2,因此下面的注释对于Prolog,不要申请。根据对原问题的评论,可怕的错误消息可能是针对CCD_ 3的单例警告。

在任何情况下:假设Turbo Prolog的clauses部分对应于标准Prolog,则程序中的N1N2TermSum都不是整数。=表示统一,而不是算术求值。如果调用fibonacci(3, Term, Sum),则在调用内部N1将绑定到未解释的术语3 - 1而不是绑定到整数2。=的其他用途也是如此。

对于算术部分,您将希望使用is/2:N1 is N - 1N2 is N - 2等。这将把右侧作为算术表达式进行计算,并将这些变量实际绑定到整数。

如果不仔细考虑,我不清楚这是否会对Term产生有用的计算。

我猜turbo找不到包含错误描述的文件。看起来tp安装不正确?纠正这一点,你会得到更多信息。

看http://rosettacode.org/mw/index.php?title=Fibonacci_sequence&action=edit&截面=399并且对其进行修改以不仅找到第N个而且还找到求和。

你会得到这样的东西:----

%fibsum(i,n,fib(i-2),fibfibsum(N,N,Fi2,Fi1,F,Si1,S):-F是Fi2+Fi1,S是Si1+F。fibsum(I,N,Fi2,Fi1,F,Si1,S):-In为I+1,Fn是Fi2+Fi1,Sn是Si1+Fn!,fibsum(In,N,Fi1,Fn,F,Sn,S)。

%fibs(i,fib(i),sum(i纤维(1,1,1)。纤维(2,1,2)。纤维(C、N、S):-C>2,腓骨(3,C,1,1,N,2,S).%从

的第三个生成---(几乎没有测试http://swish.swi-prolog.org/)

Turbo Prolog找不到错误消息文件Prolog.ERR。该文件通常安装在Turbo Prolog安装目录中。

如果文件存在,请检查应用程序路径是否在Setup(设置)->Directories(目录)->Turbo Directory 下正确设置

相关内容

  • 没有找到相关文章

最新更新