我正在提交作業,活動說:
給定參賽者在跳躍中獲得的分數也作為引數接收,顯示跳躍編號索引(串列的順序編號)。例如,在跳高 HUGO LENIN 在類別 2 中獲得 8 分的答案將是 2,因為它在串列中排在第二位。如果在任何跳轉中都沒有獲得收到的分數,則回傳 -1,如果分數重復,則回傳您找到的第一個。
%jump(name, class, score
jump('HUGO LENIN',2,[7,8,8,5]).
%class (n° class, name class, number of attempts allowed)
class(1, 'Long Jump',4).
class(2,'High Jump',5).
我真的不知道該怎么做
uj5u.com熱心網友回復:
在 SWI-Prolog 中,當Elem是List的第Index元素時,nth1( Index , List , Elem )為真,從 1 開始計數。或者,如果您更喜歡從 0 開始計數,則可以使用nth0/3。兩個謂詞都已定義in ,這是自動加載的。library(lists)
例子:
?- nth1(Index, [a,b,c], b).
Index = 2 ;
false.
?- nth1(2, [a,b,c], Elem).
Elem = b.
如果您只需要知道元素在串列中第一次出現的索引,您還可以使用 ISO 內置謂詞once/1:
例子:
?- once(nth1(Index, [a,b,c], b)).
Index = 2.
?- once(nth1(Index, [a,b,c,b], b)).
Index = 2.
?- nth1(Index, [a,b,c,b], b).
Index = 2 ;
Index = 4.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/353123.html
上一篇:修改范圍之間的一組值
下一篇:計算元組串列中數值的平均值
