prolog - 如何编写仅将正数相加的序言程序?
问题描述
我正在尝试学习 prolog,这是我需要的一个小程序,但是,我无法弄清楚如何做到这一点。
有人可以帮我吗?
我们有负鼠(S,K)。
这里 S 是一个数字列表。K 是正数之和。
?- possum([5,-1,3],K)。
应该打印出:K = 8。
感谢您的时间!
解决方案
possum(L, X) :- include(<(0), L, P), sum_list(P, X).
测试:
?- possum([5, -1, 3], X).
X = 8.
推荐阅读
- reactjs - React-native-maps 因版本错误而失败
- python - Tornado 发送和接收字节
- java - 如何在不创建对象的情况下从另一个类获取变量
- python - 根据另一个文件的列中的值过滤文件
- jsf - 禁用命令按钮时 PrimeFaces 6.2 命令按钮标题不起作用
- ios - 如果 textField 为空,如何禁用 Xcode 中的 Alert Add 按钮?
- c++ - 类链中的转换
- node.js - 如何正确地将文件要求到另一个文件中
- angular5 - 在 Angular 中,`name` 在 `` 是指字符串文字还是属性?
- javascript - 由于状态突变,Redux 操作未在 reducer 中捕获