Prolog,文件操作

时间:2012-11-21 08:58:23

标签: prolog

作为输入数据,我有一个包含100行的文件。在每一行我有一个数字后跟点。我需要越来越多地打印到已排序的数字到另一个文件。

我知道从一个文件中读取并打印到一个带有see和tell的文件但是当它从1到100进行所有操作时,没有读取(X),读取(Y)等每行在看到()我迷路了。那你怎么解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

请注意,此描述比实际所需的代码更详细。

?- read_input(L), msort(L, S), write_output(S).

即。 (使用Edinburgh-style I/Osee输入文件,保留read,存储在列表中直到输入= end_of_file(然后关闭列表),之后使用{{ 3}}命令列表,然后msort输出文件,并用循环写入列表的每个元素。您可以使用长度/ 2来检查实际上是否有100个数字。

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

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