0
我有一个递归谓词调用,并将该调用的输出附加到列表append/3
。所以输出将成为一个列表清单。我的问题是,有时append/3
被调用是这样的:只有一个元素的“列表”的序言列表
append([[2]], [1,2,3,4], L).
而且这是[[2], 1,2,3,4]
输出。我想在append/3
之前检查第一个元素是只有一个元素的列表列表,但到目前为止我无法创建一个匹配它的模式。
所以我的问题是:我如何检查是否有列表的列表?
'A'是恰好一个列表IFF'A的列表= [[]]]; A = [[_ | _]]'是真的。如果A = [[_]]'为真,'A'就是一个元素的列表。 – lurker
@lurker'A = [[_]]'对于具有任意数量元素的列表列表也是如此,例如, '[[[1,2,3,4,5]]]([demo](http://ideone.com/oCnvav))。我不确定OP是否想要匹配这样的列表。 – dasblinkenlight
@dasblinkenlight啊是的你是对的。而'A = [[_ | _]]'也可以进一步嵌套。 – lurker