如何从文件中读取数字并在(prolog编程)中对其进行排序
答案 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