1
palindrome_list_atomes(A,B):-  
  atom_concat(A,B,C),  
  atom_chars(C,X),  
  palindrome_list(X).

palindrome_list_atomes(A,B) が任意の量の Atom (A と B だけでなく) を除外し、atom_concat がこれらの相対数のアトムを加算してアトム C を作成するようにしたいと考えています。

atom_charts(C,X)  

それを Chars のリストに変換するだけで、X は別の述語に渡されます。

このようなことは簡単だと確信しています(そうあるべきです)、私はPrologを初めて使用し、Googleで行き止まりに達することにうんざりしています。

4

1 に答える 1

1

あなたの質問を理解できたら、atom のリストを渡す必要があります。

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 これは、SWI-Prolog のライブラリで利用可能な、atomic_list_concat /2 の貧弱な代替品です。もちろん、可能な場合はビルトインを使用してください。

于 2013-04-21T04:38:04.437 に答える