假设我们有一个列表:[[[[a],b,c],a,b,[a,b]]]
例如,我想在列表中加一个get [[a],b,c]
或[a]
。
做这样的事情:listsplit([H|T], H, T).
当回头时我只到达列表的一个级别。我尝试递归地做但没有用。
感谢任何帮助。
答案 0 :(得分:0)
你应该记住,[H | T]只是语法糖:列表只是二叉树,头部总是一片叶子。所以你可以像其他树一样解构它:
| ?- X = [[[[a],b,c],a,b,[a,b]]], X = [[Y|_]|_], X = [[[Z|_]|_]|_].
这导致:
X = [[[[a],b,c],a,b,[a,b]]]
Y = [[a],b,c]
Z = [a]
然而,这"气味"。你到底想要完成什么?也许有更好的方法然后通过笨拙的嵌套列表表示树? p>