palindrome_list_atomes(A,B):-
atom_concat(A,B,C),
atom_chars(C,X),
palindrome_list(X).
我想让它成为palindrome_list_atomes(A,B)将除了任何数量的原子(不仅仅是A和B),然后atom_concat将这些相对原子数加在一起创建一个原子C.
atom_charts(C,X)
只需将其转换为Chars列表,然后将X传递给另一个谓词。
我确信这样的事情很简单(应该是这样),我只是Prolog的新手并且厌倦了在谷歌上达到死胡同。
答案 0 :(得分:1)
如果我理解你的问题,你必须传递一个原子列表:
palindrome_list_atomes(Atoms):-
list_concat(Atoms, Big),
atom_chars(Big,Chars),
palindrome_list(Chars).
list_concat([], '').
list_concat([A|As], R) :-
list_concat(As, T),
atom_concat(A, T, R).
list_concat / 2这是一个穷人替换atomic_list_concat / 2,可在SWI-Prolog'库中找到。当然,如果可用,请使用内置。