标签: list prolog pattern-matching
我有一个递归谓词调用,并且该调用的输出被附加到append/3的列表中。所以输出将是一个列表列表。我的问题是,有时append/3被称为这样的东西:
append/3
append([[2]], [1,2,3,4], L).
此输出为[[2], 1,2,3,4]。我想在append/3之前检查第一个元素是只有一个元素的列表列表,但到目前为止我无法创建匹配它的模式。
[[2], 1,2,3,4]
所以我的问题是:如何检查某些内容是否列表?
答案 0 :(得分:1)
与Prolog atom 匹配的规则就是atom/1:
atom/1
is_list_of_list_with_one_element([[X]]) :- atom(X).