Prolog:简单的问题

时间:2010-03-14 02:59:21

标签: prolog

我想将用户输入的任何字符串添加到列表中

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.

我把什么放在??????部分以确保用户输入的内容将进入用户定义的列表,该列表将在以后用于进一步处理?请帮忙。我尝试了很多东西,比如追加和其他东西,但它不起作用:(

1 个答案:

答案 0 :(得分:1)

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).

您可以像这样递归地构建列表。您需要传递一个参数才能运行,以便最后返回完整列表。