читать числа из файла в прологе и сортировать - PullRequest
0 голосов
/ 07 января 2010

как читать числа из файла и сортировать их в (прологическое программирование)

1 Ответ

2 голосов
/ 04 декабря 2010

Вы можете сначала попробовать следующее, читая из консоли несколько строк:

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

No

Объяснение: Предикат повторения / 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]

При необходимости вы можете использовать собственную сортировку и улучшить чтение с помощью аргумента потока.

С наилучшими пожеланиями

(с) 2010, Ян Бурс, 8004 Цюрих

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...