Пролог: простой вопрос - PullRequest
3 голосов
/ 14 марта 2010

Я хочу добавить любые строки, введенные пользователем в список

run :- write('How many students you have: '),read(x),nl.
       enterNameOfStudents(x).

enterNameOfStudents(x) :- for(A, 1, x, 1),write('Please enter the names of students'),read(A),??????,nl,fail.

Что я положу в ?????? часть, чтобы гарантировать, что все, что пользователь введет, войдет в определенный пользователем список, который будет использоваться для дальнейшей обработки позже? Пожалуйста помоги. Я пробовал множество вещей, таких как append и другие, но это не работает: (

1 Ответ

1 голос
/ 14 марта 2010
enterNameOfStudents(0, Names):-!.
enterNameOfStudents(X, [N|Rest]) :-    write('Enter a name: '), read(N), nl,
                   X1 is X - 1, enterNameOfStudents(X1, Rest).

run(Names) :- write('How many students you have: '),read(X),nl,
   enterNameOfStudents(X, Names).

Вы можете построить список рекурсивно, как это. Вам нужно передать аргумент для запуска, чтобы в конце вы вернули полный список.

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