Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 如何只计算列表(PROLOG)中的数字元素,除了u?_List_Prolog - Fatal编程技术网

List 如何只计算列表(PROLOG)中的数字元素,除了u?

List 如何只计算列表(PROLOG)中的数字元素,除了u?,list,prolog,List,Prolog,这段代码告诉我列表中的零数。但是如果我的列表是[0,0,0,0,0,,代码说有5个零 我写了这样的东西: count([], 0). count([H|T], N) :- count(T, X), ( H = 0 -> N is X+1 ; N is X ). 如何解决我的问题?如果写入H=0,则H与0统一,如果H为0或H不与任何东西统一,则此操作成功。 因此,您只需测试H是否等于0,使用=而不是=

这段代码告诉我列表中的零数。但是如果我的列表是
[0,0,0,0,0,
,代码说有5个零

我写了这样的东西:

count([], 0).
count([H|T], N) :-
   count(T, X),
   (  H = 0
   -> N is X+1
   ;  N is X
   ).


如何解决我的问题?

如果写入H=0,则H与0统一,如果H为0或H不与任何东西统一,则此操作成功。 因此,您只需测试H是否等于0,使用=而不是=