我正在尝试在Prolog中编写一个回文函数。我知道我可以使用类似以下的内容:
但我正在尝试找出一种不使用内置的反转方法。我已经创建了自己的反转规则:
“我想要的是,给定一个列表,比如[a,b,c,d],我想做的就是像‘X = rev([a,b,c,d])’这样的操作,但我真的不确定在Prolog中是否可能实现。”
“如果可能的话,我编写回文函数的方式将会是:”
这是可能的吗?我想做的是 X = rev([a,b,c,d])。谢谢。
palindrome(List) :- reverse(List, List).
但我正在尝试找出一种不使用内置的反转方法。我已经创建了自己的反转规则:
rev([], []).
rev([H|T], X) :- rev(T, Y), append(Y, [H], X).
“我想要的是,给定一个列表,比如[a,b,c,d],我想做的就是像‘X = rev([a,b,c,d])’这样的操作,但我真的不确定在Prolog中是否可能实现。”
“如果可能的话,我编写回文函数的方式将会是:”
palindrome(List) :- append(L1, rev(L1), List).
这是可能的吗?我想做的是 X = rev([a,b,c,d])。谢谢。