2017-06-05 13 views
1

なぜ私は私の結果を得ているのか理解しようとしています。Turbo Prologの実行順序

prolog

申し訳ありませんが、これは簡単ですが、あまりにも多くの情報源はこれについてオンラインがない... D(3)の出力は理にかなっている場合とします。これはコードとその結果であると言うことができます私、その後、e(3)はまったくありません。 このような場合に書き込みを移動すると、順序が逆転するのはなぜですか?
私はそれが再帰と関係があると推測していますが、なぜ私はまだ無知です。

答えて

1

最初のケースにするためです:あなたが最初の呼び出しe(N1)、その後の書き込み:その後、例えばd(3)意志write 3call d(2)等...第2のケースで

はのであなたは、最初に書き込み、再帰的にd(N1)を呼び出しますこれは...

ため成功します e(-1)を呼ぶであろう e(0)を呼ぶ例 e(1)のための順序を変更して、その後、 e(0)ます write 0 e(1)意志 write 1など