我写了程序,它计算给定列表包含多少奇数。
要使用它,您需要以此格式knelyg([1,2,3],K).
键入您的查询。这是我的问题,现在,我的程序将返回false
,而不是K=2
。
我的问题是,如何在不使用程序本身的任何写入功能的情况下确保将K值返回给用户并打印出来?
calc(S,K):-
S = [First|Tail],
(First rem 2 =:= 0 -> calc(Tail,K); K1 is K + 1),
calc(Tail,K1).
knelyg(S,K):-
K = 0,
calc(S,K).
答案 0 :(得分:1)
保持简单......可能
knelyg([],0). % missing base case
knelyg([First|Tail],K):-
knelyg(Tail,K1),
K is K1+(First rem 2).