1
我不得不創建一個謂詞,將特定點的列表拆分爲更小的列表。用特定的「標記」分割列表
E.g.它必須將以下列表[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).
有可能的替代解決方案,這是更優雅? 非常感謝!
分裂([1,2],2,L)。得到L = [[1],[]]。預期?當然是 – ssBarBee
。否則,你如何知道列表以分隔符結束?通常有一個選項可以改變這種行爲,並擺脫空容器。 – CapelliC
啊我現在明白了:)我試圖擺脫它在我的解決方案中認爲它是多餘的:) – ssBarBee