差分リストの続き
とりあえず、こんなのが差分リストの定石だということはわかった。
hoge([W | Ws], [Xs, Ys]) :-
hoge(W, [Xs, Xs1]), hoge(Ws, [Xs1, Ys]).
こういう条件がたくさん登場する。
だめだ
ぜんぜん差分リストわからん。10分くらいしか考えてないけど。
とりあえず、
hogeの引数が足りなかったので追加した。あと、
差分リストを使うとき、終了条件はこんな風にして、
hoge(W, [Ys, Ys]).
使うときは、二つ目には空リストを渡さなければならない理由がわかった。
hoge(Ws, [Ys, []]).
最終的にリストは
[_ | [_ | [] ]]
のように空リストで終わる必要があるから、初めの引数で、最後の要素を指定してあげて、終了条件で渡してあげると。このはじめに渡す空リストが[a,b,c]とかだった場合は[]の代わりに[a,b.c]が連結されると。