作为输入数据,我有一个包含100行的文件。在每一行我有一个数字后跟点。我需要越来越多地打印到已排序的数字到另一个文件。
我知道从一个文件中读取并打印到一个带有see和tell的文件但是当它从1到100进行所有操作时,没有读取(X),读取(Y)等每行在看到()我迷路了。那你怎么解决这个问题呢?
答案 0 :(得分:0)
请注意,此描述比实际所需的代码更详细。
?- read_input(L), msort(L, S), write_output(S).
即。 (使用Edinburgh-style I/O)see输入文件,保留read,存储在列表中直到输入= end_of_file
(然后关闭列表),之后使用{{ 3}}命令列表,然后msort输出文件,并用循环写入列表的每个元素。您可以使用长度/ 2来检查实际上是否有100个数字。
编辑未经测试的代码以从当前输入中读取列表
read_list(L) :-
read(N), N \= end_of_file
-> L = [N|Ns], !, read_list(Ns)
; L = []
.