我有一个清单
X = [-n,-b,-s,hello,world]
我需要的输出
Z1 = [-n,-b,-s]
Z2 = [hello,world]
如果字符串以 - 开头,它应该是Z1列表的一部分,否则是Z2列表的一部分。
有人可以为我提供一些基本的直觉来实现吗?
答案 0 :(得分:1)
与图书馆(申请)和图书馆(yall)立即:
?- partition([E]>>(E = - _), [-n,-b,-s,hello,world], N, P). N = [-n, -b, -s], P = [hello, world].
在旧的,简单的Prolog中实施,访问列表和' cons'所需列表中的元素:
divide_dashed([], [], []).
divide_dashed([-E|R], [-E|Ds], Ps) :- !, divide_dashed(R, Ds, Ps).
divide_dashed([E|R], Ds, [E|Ps]) :- divide_dashed(R, Ds, Ps).