prolog - 如何在不使用 Prolog 中的任何内置函数的情况下递归打印列表?
问题描述
我是 Prolog 的新手。我了解Prolog中的基本递归,例如append,member。
我想知道如何在不使用 Prolog 中的内置函数的情况下递归打印列表。
任何人都可以帮助我吗?
解决方案
大多数涉及处理列表的谓词将演变为针对空列表的规则和用于处理一个项目并递归处理列表其余部分的规则。作为模板,它看起来像这样:
pred([]) :- ??? % empty case
pred([X|Xs]) :-
??? % handle X
pred(Xs). % recur for the tail of the list
请注意,我们只是在这里使用列表的定义,不需要特殊的谓词。看看这是否足以让您找出解决方案,如果这样做,请将其作为答案发布。
推荐阅读
- javascript - 如何在 c3.js 中使用多个 XY 折线图构造多个数据数组
- vue.js - 服务堆栈 Vue SPA 应用程序
- linux - 有没有办法默认 Go 的 os 包调用在特定用户下运行
- python-3.x - 如何解决使用 sqlalchemy 连接执行 pandas.to_sql() 时遇到的 InvalidRequestError?
- python - Python 在游戏中找不到 SSL 模块但在电脑中找不到问题
- r - 如何在闪亮的上下文中更改绘图的高度
- prolog - `nonvar(X)` 和 `\+var(X)` 之间有区别吗?
- toml - 数组内的 TOML 多级表语法——非法与否
- javascript - 如何在 React 中制作元素过滤器?
- javascript - 通用与特定 API 响应