我想将用户输入的任何字符串添加到列表中
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.
我把什么放在??????部分以确保用户输入的内容将进入用户定义的列表,该列表将在以后用于进一步处理?请帮忙。我尝试了很多东西,比如追加和其他东西,但它不起作用:(
答案 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).
您可以像这样递归地构建列表。您需要传递一个参数才能运行,以便最后返回完整列表。