プロローグで、変数を_のインスタンスにする方法はありますか?私はスドクソルバーを作っています。数字(与えられた数字)または - (数字が与えられていない)のいずれかで読み込まれたパズルを表します。だから、パズル全体をリストのリストに読み込んだので、そのリストを関数に渡したいと思い、 ' - 'を_として渡す必要があります。入力を読み取って入力を_として保存するときに何らかの方法がありますか?たとえばのように。Prolog "don't-care"変数
get_next(X) :-
repeat,
get_char(Y),
(Y = '\n' -> fail
;
Y = '-' -> X = _
;
X = Y
).
このようなものは何ですか?私はおそらく'_'
を渡すと思ったが、もちろん、'_' \= _
...どんな助けでも大歓迎です。プロローグは私にとって非常に異質です。
Prologのアンダースコアは、同じ名前の他の変数と統合されない変数です。それは他の名前付き変数との唯一の違いです。 – dasblinkenlight
私は 'all_different([1、_2,5、_、4、_、8,7])'を呼び出すと真ですが、上記の関数を使って入力を読み込み、 (2): '2/0'はエラーではありませんが、エラーメッセージ 'ERROR:>/2:関数 'である。これを修正するにはどうすればよいですか?私のall_differentを実装しますか? –
私が言ったのは、 'all_different([1、_2,5、_、4、_8,7])'と 'all_different([1、A、2,5、B、4、C、8 、7]) 'はルールの他の場所で' A'、 'B'、' C'を統一しようとしない限り同じです。 – dasblinkenlight