在 Prolog 中:我有以下函数来计算列表中某个元素的出现次数:
%count(L:list,E:int,N:int) (i,i,o)
count([],_,0).
count([H|T],E,C):-H == E,count(T,E,C1),C is C1+1.
count([_|T],E,C):-count(T,E,C).
我测试了它,它运行良好。但是问题来了,我有另一个函数必须检查“1”在列表中出现的次数是否少于 2 次。
check(L):-count(L,1,C),C<2.
例如,每当我尝试检查列表[1,1,1,1]
时,我得到的结果都是“真”,这是错误的,我不知道为什么。我试图进行一些更改,但该功能不起作用。