【发布时间】:2017-10-06 06:26:10
【问题描述】:
我正在尝试删除列表列表中每个列表的第一个元素。 例如,要列出 [[1,2],[3,4]],我应该返回 [[2],[4]]。 在大多数情况下,下面的代码可以正常工作:
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)。 -
到[[]]应该返回[],返回的列表中应该没有空列表。
标签: list data-structures prolog