晚上好,
我正在尝试在Prolog中读取包含世界上所有国家的csv
文件。执行以下代码:
read_KB(R) :- csv_read_file("countries.csv",R).
我得到了一个Terms
的列表,类型如下:
R = [row('Afghanistan;'), row('Albania;'), row('Algeria;'), row('Andorra;'), row('Angola;'), row('Antigua and Barbuda;'), row('Argentina;'), row('Armenia;'), row(...)|...].
我想只提取每个国家的名称,并将它们全部放入list of Strings
中。我尝试了这种方法,只在第一行执行此操作:
read_KB(L) :- csv_read_file("/Users/dylan/Desktop/country.csv",R),
give(R,L).
give([X|T],X).
我只得到一个row('Afghanistan;')
类型的项
2条答案
按热度按时间ar7v8xwq1#
您可以使用maplist/3:
vu8f3i0k2#
@slago给出的答案可以简化,使用arg/3代替lambda表达式,使其稍微更高效: