<分区>
count([],0).
count([_|Tail], N) :- count(Tail, N1), N is N1 + 1.
这会计算所有元素,但我只需要计算数字。
标签 prolog
<分区>
count([],0).
count([_|Tail], N) :- count(Tail, N1), N is N1 + 1.
这会计算所有元素,但我只需要计算数字。
最佳答案
Prolog 有一个 ISO 内置谓词 number/1
检查给定参数是否为数字。
我们可以简单地使用 if-then-else 语句来递增 N is N1+1
,或者设置 N = N1
,例如:
count([],0).
count([<b>H</b>|Tail], N) :-
count(Tail, N1),
<b>( number(H)
-></b> N is N1 + 1
<b>; N = N1
)</b>.
关于prolog - 如何仅计算列表中的数字元素(PROLOG),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44510056/