我試圖寫具有List
作爲輸入並返回有序對的列表Result
過程order(List,Result)
使得:Prolog的計數器問題
- 有序對的第一個元素是一對的位置在列表中,並且
- 有序對的第二個元素是List n中對應位置的元素。
實施例:
如果List = [a,b,c,d]
,則過程順序(列表,結果)輸出該列表: Result = [(1,a), (2,b),(3,c),(4,d)]
。
我正在爲計數器在列表中的位置掙扎。我做了如下嘗試:
increment(Accum,Total):-
Total is Accum + 1.
order([],[]).
order([Head|Tail],Result):-
order(Tail, NewTail),
NewCount is Count + 1,
increment(NewCount,Count),
Result = [(Count,Head)|NewTail].
請幫助任何人嗎?