我想刪除列表中每個列表的第一個元素。 例如,要列出[[1,2],[3,4]],我應該返回[[2],[4]]。 在大多數情況下,下面這段代碼將正常工作:從Prolog列表中的列表中刪除每個列表中的第一個元素的最佳方法?
remove_firstElem([],[]).
remove_firstElem([[_H|T]|Ls],[T|L]) :-
remove_firstElem(Ls,L).
但對於像[[1],[2],我想列出它返回[]而不是[[] [] 。
我試過到目前爲止是這樣的:
remove_firstElem([_H|Ls],L) :-
length(_H,1),
remove_firstElem(Ls,L).
但它返回[ ],[[ ]],[[ ]],[[ ],[ ]]
,我真的不知道有什麼地方錯了。
任何人都可以幫助我解決它嗎?謝謝你的幫助!
如果沒有在源空列表。像'remove_firstElem([[]],L)'。 –
to [[]]它應該返回[],它返回的列表中不應該有空列表。 – Fallin