どの引数が問題記述すなわち入力で, どれがそれに対する解すなわち出力で あるかをはっきり分け, それを意識しながらプログラミングする.
a([E|X1],Y):-integer(E) |
E1:=E+1, Y=[E1|Y1], a(X1,Y1).
a(X,[E|Y1]):-integer(E) |
E1:=E-1, X=[E1|X1], a(X1,Y1).
このようなストリームの向きが決まっていないプロセスも作れることは作れるが, このようなプロセスをプロセス・ネットワーク に入れておくことはバグの元凶であり, またそもそもプロセス・ネットワークの 各ノードの役割や結合形態を云々すること自体, 難しくなる. また, KLIC処理系の性能アップの切札として導入予定のKL1プログラム 静的解析は, 入出力のはっきりしないプログラムでは効果的に働かないことも 付け加えておく.