在prolog中将字符串列表拆分为列表列表
我请求学习Prolog,我想知道如何实现一个函数,将字符串列表转换为字符列表的有序列表。 例如:在prolog中将字符串列表拆分为列表列表,prolog,Prolog,我请求学习Prolog,我想知道如何实现一个函数,将字符串列表转换为字符列表的有序列表。 例如: ?- f([sheep,dog,cat],Z). 应该回来 Z=[[c,a,t], [d,o,g], [s,h,e,e,p]]. 我知道我应该分别使用sort(L1,L2)和atom_chars(A,B)谓词。但我到底该如何编写代码呢?网上很少有Prolog教程,所以我真的不知道怎么说。。。 提前谢谢 灵感来自false的oneliner,由单元测试框架包装: :-begin_tests(spl
?- f([sheep,dog,cat],Z).
应该回来
Z=[[c,a,t], [d,o,g], [s,h,e,e,p]].
我知道我应该分别使用sort(L1,L2)和atom_chars(A,B)谓词。但我到底该如何编写代码呢?网上很少有Prolog教程,所以我真的不知道怎么说。。。
提前谢谢 灵感来自false的oneliner,由单元测试框架包装:
:-begin_tests(split).
data([sheep,dog,cat]).
test(one) :- data(L),
sort(L,L2),
maplist(atom_chars,L2,Exploded),
format("~q\n",[Exploded]),
L2 = [[c,a,t], [d,o,g], [s,h,e,e,p]].
:-end_tests(split).
rt :- run_tests(split).
f(L,Z):-L=[羊,狗,猫],地图列表(atom_chars,L,Chs),排序(Chs,Z)。“网上很少有Prolog教程”。。。什么
?- rt.
% PL-Unit: split [[s,h,e,e,p],[d,o,g],[c,a,t]]
. done
% test passed
true.