我正在尝试自己学习Prolog,并想知道如何逐个打印存储在数据库中的列表内容。
我的想法是,如果我在SWI Prolog中打开(查阅(它,那么我就可以使用go().
运行代码,并让它输出valueslist中的值。
valueslist(['papua new guinea',botswana,'netherlands antilles',sweden,cameroon]).
printlist([]).
printlist([X|List]) :-
write(X),nl,
printlist(List).
go :-
write('Here is an example list of countries: '), nl,
printlist(valueslist).
现在,代码只打印Here is an example list of countries:
,然后打印false.
我想让它打印Here us an example...
,然后像一样打印国家列表
papua new guinea
botswana
netherlands antilles
sweden
cameroon
如何在Prolog中正确地完成这样的事情?
事实上,我通过继续修改它找到了答案。我不确定这是否是Prolog中的一个好方法,但它给出了我希望的输出。
打印出列表的代码如下所示:
valueslist(['papua new guinea',botswana,'netherlands antilles',sweden,cameroon]).
printlist([]).
printlist([X|List]) :-
write(X),nl,
printlist(List).
go :-
write('Here is an example list of countries: '), nl,
valueslist(List),
printlist(List).