1

全体に2つの配列があるプログラムがあります。それらは空で始まりますが、プログラムを通じてそれらは移入されます。

これが私の最初の機能である場合:

program():-
  populate_arrays([],[]),
  carry_on().

設定された配列をcarry_on()に渡すには、populate_arrays()に4つのパラメーターが必要ですか?2つは開始時に配列を空として宣言し、もう2つはcarry_on()に渡しますか?

以下のようなので:

program():-
  populate_arrays([],[],A,B),
  carry_on(A,B).

パラメータを2倍にする必要があるのは厄介なようです

4

1 に答える 1

1

はい、これはあなたがしていることです。いいえ、これらは重複していないため、厄介ではありません。最初のペアは入力引数であり、2番目のペアは出力結果です。

これは一般的な使用パターンであり、状態変換に対応します:old innewout。あなたの知識の状態は、この述語によって変更されますpopulate_arrays。これはあなたがそれをどのように使うかに反映されます。

ところで、開始値が常に[]である場合は、「作業中」の述語に「ラッパー」を指定できます。

populate_arrays( A, B):-
   populate_arrays([], [], A, B).

populate_arrays( A, B, C, D):-
   % your implementation ...
于 2012-08-11T17:53:10.160 に答える