首页 > 解决方案 > 如何编写仅将正数相加的序言程序?

问题描述

我正在尝试学习 prolog,这是我需要的一个小程序,但是,我无法弄清楚如何做到这一点。

有人可以帮我吗?

我们有负鼠(S,K)。

这里 S 是一个数字列表。K 是正数之和。

?- possum([5,-1,3],K)。

应该打印出:K = 8。

感谢您的时间!

标签: prolog

解决方案


possum(L, X) :- include(<(0), L, P), sum_list(P, X).

测试:

?- possum([5, -1, 3], X).
X = 8.

推荐阅读