本文介绍了显示列表 Prolog 中的最后一个元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给定列表[1, 2, 3, 4],显示最后一个元素.我只使用一个参数并使用递归.

Given the list [1, 2, 3, 4], display the last element. I am using only one parameter and using recursion.

这是我试过的.但输出总是true.

This is what I tried. But the output is always true.

lastElement([]).

lastElement(Stack).

lastElement([_|Tail], Head):-
    lastElement(Tail, Head).

我得到的输出是

> lastElement([1,2,3,4,5]). Singleton variables: [Stack] true

推荐答案

我觉得你想多了.

谓词 lastElement(Stack). 将匹配所有内容.您只需要列表的最后一个元素.

The predicate lastElement(Stack). will match on everything. You just want the last element of the list.

试试这个:

lastElement([Head]) :- write(Head).
lastElement([_|Tail]):-
    lastElement(Tail).

当我运行 ?- lastElement([1,2,3]). 我得到 3 显示.

When I run ?- lastElement([1,2,3]). I get 3 displayed.

这篇关于显示列表 Prolog 中的最后一个元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-17 16:13