【发布时间】:2013-07-19 19:22:20
【问题描述】:
使用 prolog,我必须创建一个规则,当给定一个列表时,该规则确定列表的第一个元素是否等于列表的最后一个元素。以下是我的想法。
The Base Cases:
1) If The Parameter Is Not A List: Return False
2) If The Parameter Is A List But Empty: Return False
3) If The Parameter Is A List But Has One Element: Return False
The Recursive Step:
Recursively Going Through The List Getting The
First Element And TheLast Element Then Compare
fela() :- false. <-- Base Case One
fela([]):-false. <-- Base Case Two
fela([H]):-false. <-- Base Case Three
fela([H|T]):- H1 is H, H1 == T, fela(T,H1). <-- Recursive Step
Bellow 是 First、Last、Member 的函数
first(F, [F|_]).
last(L, [H|T]) :- last(L, T).
member(X, [X|_]).
member(X, [_|T]) :- member(X, T).
我的递归步骤有问题,我不确定如何存储第一个元素,并遍历列表并获取最后一个元素,然后比较结果以获得真/假答案。谁能帮帮我
谢谢,
埃里克:)
【问题讨论】:
-
因此,您应该接受对您最有帮助的答案之一。 :)