prolog - 如何仅计算列表中的数字元素(PROLOG)

标签 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/

相关文章:

Prolog 罗马数字(属性语法)

prolog - 关于混合 Prolog 协程(freeze/2,when/2)和 DCG

list - Prolog 关于使用追加查找列表的最后一个元素

open-source - GNU Prolog 的同义反复检查器

prolog - 计算序言中 map 着色的数量

linux上的prolog解释器?

module - SWI Prolog Ensure_loaded 错误

prolog - 为什么这个 prolog 程序返回 false?

prolog - 简化 Prolog 中的表达式

tree - 如何在序言中实现树算法的尾递归