講師はこのサンプルプログラムを渡してコードを見てもらいましたが、再帰関数は大体理解できましたが、この 1 行だけでは意味がよくわかりませんでした。
all_different([H | T]) :- member(H, T), !, fail.
再帰関数から抽出:
all_different([H | T]) :- member(H, T), !, fail.
all_different([_ | T]) :- all_different(T).
all_different([_]).
私が理解したのは、リストをヘッド H とテール T に分割し、H が T に含まれているかどうかを確認することだけです...私の質問は、「!」は何ですか? と「失敗」しますか?