0

我使用适用于 Windows 的最新版本的 ECLiPSe Prolog 64 位,然后编译代码:

:- op(200, yf, !).
!(N, F) :- fac(N, 1, F).
fac(0, F0, F) :- !, F=F0.
fac(N, F0, F) :- N1 is N-1, F1 is F0*N, fac(N1, F1, F).

输入的查询:

?- X is 100000 !.
X = 28242294079603478742934215200555696886678...
Yes (8.17s cpu)

第一个问题:为什么在 TkEclipse 中只显示 1999 个数字而没有 456574 个完整数字?

第二个问题:是否可以将与用户的交互记录在文件 ECLiPSe Prolog 上作为 SWI-Prolog 的协议(+文件)?

我很抱歉做了两个问题。如果您能提供任何帮助,我将不胜感激。

4

2 回答 2

1

适用于版本 7.0 #36 (x86_64_nt) 的 DosEclipse:

在此处输入图像描述

编辑 31.01.2018:未生成输出时显示的时间相同。

于 2018-01-30T21:40:41.137 回答
0

ECLiPSe 确实将完整的结果打印到名为 的流中answer_output,但文本稍后会被图形用户界面截断。

将结果写入文件的最简单方法是将其显式写入其中,例如

?- open(myresult,write,S), X is 100000!, writeln(S,'X'=X), close(S).
于 2017-12-10T23:47:36.513 回答