【发布时间】:2017-05-10 23:18:25
【问题描述】:
我知道这里的一些问题与这个问题相似,但我缺乏经验,我不知道如何使用它们并将解决方案转换为我的问题;/
我有一个列表,里面有列表,比如这个:
[ [5],[4,7],[1,2,7],[2,6,7],[2,4,6,7],[2,4,7],[9,8],[3],[1] ]
并且我需要知道例如数字 3 的索引。我需要知道的数字只会出现在列表列表中一次,这是调用该函数的先前条件。对于数字 3,我需要的索引是索引 9(从 1 开始)。我有这个函数草稿:
given_elem_finds_pos(ListOfLists, Element, Pos):-
nth1(Pos, ListOfLists, [Element|_]).
但仅当 Element 是子列表的头部时才返回 Pos。我需要知道如何获得例如索引数字 8。
然后我做了这个:
given_elem_finds_pos( [[H|T]| R], Element, Ind):-
member(Element, [H|T]),
Ind1 is Ind + 1,
given_elem_finds_pos(R, Element, Ind1).
但又一次,没有成功..有人可以帮忙吗?非常感谢!
【问题讨论】:
标签: prolog logic nested-lists list-manipulation