首页 > 解决方案 > 如何在不使用 Prolog 中的任何内置函数的情况下递归打印列表?

问题描述

我是 Prolog 的新手。我了解Prolog中的基本递归,例如append,member。

我想知道如何在不使用 Prolog 中的内置函数的情况下递归打印列表。

任何人都可以帮助我吗?

标签: prolog

解决方案


大多数涉及处理列表的谓词将演变为针对空列表的规则和用于处理一个项目并递归处理列表其余部分的规则。作为模板,它看起来像这样:

pred([])     :- ??? % empty case
pred([X|Xs]) :- 
   ???              % handle X
   pred(Xs).        % recur for the tail of the list

请注意,我们只是在这里使用列表的定义,不需要特殊的谓词。看看这是否足以让您找出解决方案,如果这样做,请将其作为答案发布。


推荐阅读