【发布时间】:2016-12-08 09:18:29
【问题描述】:
我试图找出在序言中作为参数传递的列表中有多少值为 X 的元素。我的代码是
cetnost(x,[],0).
cetnost(x,[X|T],C):- cetnost(X,T,C1),C is C1 + 1.
?- cetnost(a,[a,b,a,a],C).
//false
但它一直返回错误。这个递归有什么问题?如果传递了空列表,则 C 设置为 0 并递归冒泡,每个冒泡递增值 1。
感谢帮助
【问题讨论】:
-
问题是您有 x 作为输入,并且在列表和递归中使用大写 X。将所有更改为 x ,它将起作用....此外,在基本情况下,您不需要 x 只需编写 cetnost(_,[ ],0)。
标签: prolog