如何逐个打印存储在数据库中的列表内容



我正在尝试自己学习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).

最新更新