Prolog列表"列表"只有一个元素

时间:2015-12-01 19:38:39

标签: list prolog pattern-matching

我有一个递归谓词调用,并且该调用的输出被附加到append/3的列表中。所以输出将是一个列表列表。我的问题是,有时append/3被称为这样的东西:

append([[2]], [1,2,3,4], L).

此输出为[[2], 1,2,3,4]。我想在append/3之前检查第一个元素是只有一个元素的列表列表,但到目前为止我无法创建匹配它的模式。

所以我的问题是:如何检查某些内容是否列表?

1 个答案:

答案 0 :(得分:1)

与Prolog atom 匹配的规则就是atom/1

is_list_of_list_with_one_element([[X]]) :- atom(X).