从prolog文件中读取数字并进行排序

时间:2010-01-07 08:23:10

标签: prolog

如何从文件中读取数字并在(prolog编程)中对其进行排序

1 个答案:

答案 0 :(得分:2)

您可以先尝试以下操作,从控制台读取多行:

?- repeat, read(X), (X==end_of_file, !, fail; true).
1.
X = 1 ;
2.
X = 2 ;

No

说明:repeat / 0谓词重复成功,以便 read / 1被反复调用。调用read / 1仅在end_of_file时停止 已经达成了因为它之后的削减。

然后你可以把它包装成一个findall / 3并调用sort / 2:

?- findall(X,(repeat, read(X), (X==end_of_file, !, fail; true)),L), sort(L,R).
2.
1.

L = [2, 1],
R = [1, 2]

如果需要,您可以使用自己的排序并通过流参数增强读取。

最好的问候

(c)2010年,Jan Burse,8004Zürich