0

プロローグで、変数を _ のインスタンスにする方法はありますか? 私は数独ソルバーを作成しており、読み込まれたパズルを数字 ​​(与えられた数字) または - のいずれか (与えられていない数字) で表します。それで、パズル全体をリストのリストに読み込んで、そのリストを関数に渡したいのですが、「-」を _ として渡す必要があります。入力を読み取り、入力を _ として保存する方法はありますか? たとえば..

get_next(X) :-
  repeat,
  get_char(Y),
  (Y = '\n' -> fail
   ;
   Y = '-' -> X = _
   ;
   X = Y
  ).

このようなもの?おそらく a を渡す'_'とうまくいくと思いましたが、もちろん'_' \= _...どんな助けでも大歓迎です。プロローグは私にとって非常に異質です。

4

1 に答える 1

0

Y='-' の場合、X を Y にバインドしないでください。これにより、X はインスタンス化されません (最初からインスタンス化されていない場合)。

get_next(X) :-
  repeat,
  get_char(Y),
  (Y = '\n' -> fail
   ;
   Y \= '-' -> X = Y  ; true
  ).
于 2012-04-27T19:35:47.467 に答える