基本序言 - 任意数量的原子(Prolog新增功能)

时间:2013-04-20 22:02:13

标签: prolog

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的新手并且厌倦了在谷歌上达到死胡同。

1 个答案:

答案 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'库中找到。当然,如果可用,请使用内置。