Prolog,带文件的操作

Prolog,带文件的操作,prolog,Prolog,作为输入数据,我有一个包含100行的文件。在每一行上我都有一个数字,后面是点。我需要将排序后的数字打印到另一个文件中 我知道用see-and-tell从文件中读取数据并打印到文件中,但是当涉及到从1到100的所有数据时,没有进行读取(X)、读取(Y)等操作。对于see()中的每一行,我都会不知所措。那么您将如何处理这个问题呢?请注意,这个描述比实际需要的代码要详细得多 ?- read_input(L), msort(L, S), write_output(S). 也就是说,(使用)输入文件,保

作为输入数据,我有一个包含100行的文件。在每一行上我都有一个数字,后面是点。我需要将排序后的数字打印到另一个文件中


我知道用see-and-tell从文件中读取数据并打印到文件中,但是当涉及到从1到100的所有数据时,没有进行读取(X)、读取(Y)等操作。对于see()中的每一行,我都会不知所措。那么您将如何处理这个问题呢?

请注意,这个描述比实际需要的代码要详细得多

?- read_input(L), msort(L, S), write_output(S).
也就是说,(使用)输入文件,保存,存储在一个列表中,直到输入=
结束文件的\u
(然后关闭列表),然后使用排序列表,然后是输出文件,并使用循环写入列表的每个元素。您可以使用length/2检查实际是否有100个数字

编辑未测试的代码,从当前输入读取列表

read_list(L) :-
  read(N), N \= end_of_file
  -> L = [N|Ns], !, read_list(Ns)
  ;  L = []
  .

但是你如何浏览这个列表呢?到目前为止,在我的程序中,我逐行读取,比如{read(X),read(Y)}这个位读取前两行。因此,对于文件中的100个数字,这将是很多。如何将它们放入列表中?它是有效的,但->是什么?我用过:see('C://Documents and Settings//numbers.txt')、read(L)、read_list(L)、msort(L、X)、seen、tell('C://Documents and Settings//numbout.txt')、tell。如果。。。然后其他构造。看看这个,我还有一个需要帮助的。