我想在Prolog中编写一个关系分割,它需要一个整数N,整数列表L和其他参数,列表L是平的。如果列表L可以分成三个子集,则每个子集中的整数之和严格小于N,否则关系split将返回true。否则,该关系返回false。这是到目前为止,我走得最远:Swi Prolog的关系
split(list, list, list, list)
split([],[],[],[]).
list_sum([],0).
split([X|L], [X|L1], [X|L2], L3):-
list_sum([Head + Tail]),
list_sum>N,
!,
split(N, L,L1, L2, L3).
- ERROR:顶层:未定义的程序:list_sum/2(DWIM不能正确的目标) 任何帮助和解释是高度赞赏。
那不能是真正的代码! – CapelliC 2013-05-07 05:13:58
你需要走得更远。 – 2013-05-07 06:05:36
给出一些有用的建议:首先用自己的话写下解决方案算法,并与我们分享。 – 2013-05-07 06:12:18