【发布时间】:2013-12-09 22:07:23
【问题描述】:
我必须创建一个谓词,将特定点的列表拆分为更小的列表。
例如它必须将以下列表 [4,5,0,3,2,0,6,1] 分开,其中零。 Prolog 的回答应该是:
X=[[4,5],[3,2],[6,1]].
我的解决方案(确实有效!)如下:
get_chunk(_,[],[],[]).
get_chunk(Splitter,[Splitter|L],[],L).
get_chunk(Splitter,[Head|L],[Head|X],R) :- get_chunk(Splitter,L,X,R).
split([],_,[]).
split(SL,Splitter, [U|Us]) :- get_chunk(Splitter,SL,U,L),
split(L,Splitter,Us).
是否有更优雅的替代解决方案? 非常感谢!
【问题讨论】: