我有一个"列表列表"例如[A,B,C],[A,B],[d,F]]。
我现在希望在屏幕上打印列表的第一个元素(即本例中的[A,B,C])。我以为我可以这样做:
testfunction(List):-
List=[[Top]|Rest],
write(Top),nl,nl.
但是,当我使用testfunction([[A,B,C],[A,B],[D,F]]).
运行时,它似乎在List=[[Top]|Rest]
统一步骤中失败。
我多年来一直绞尽脑汁,但我无法解决为什么会失败 - 有人能看出我出错的地方吗?谢谢!
答案 0 :(得分:0)
您需要使用垂直条[Top|Rest]
语法两次才能从嵌套列表中提取元素,如下所示:
testfunction([[Top|_]|_]):-
write(Top),nl,nl.
现在Top
与列表列表中第一个列表的第一个元素统一起来。请注意,您根本不必使用统一运算符=
,并在标题内进行统一。