0

リストのすべての要素をその深さでインクリメントしようとしています。例えば:

foo([0, 0, [0]], [1, 1, [2]]) -> true

また、組み込みの Prolog リスト述語なしでそれを行いたいと思います。これを解決する方法についてのアイデアはありますか?

4

2 に答える 2

0

divide_half については、2 つのことを確認する必要があります (これは独立して行うことができます): リストがある種の分割を定義していること、および分割の部分が十分に近い長さであることです。

2番目に、各要素を検索することから始め、それを変更して深さを追跡し、最後にそれを変更して、要素が変更されたリストのコピーを作成します(ただし、それが何を意味するのかはわかりません-何かを数値でインクリメントします)。

于 2012-04-06T18:59:47.397 に答える
0

この定義は、組み込みの述語なしでリストを分割します。

halve(List, A, B) :- halve(List, List, A, B).
halve(B, [], [], B).
halve(B, [_], [], B).
halve([H|T], [_,_|T2], [H|A], B) :-
    halve(T, T2, A, B).
于 2012-04-06T20:09:44.440 に答える