我的讲师给了我们这个示例程序来查看代码,而我总体上理解了递归函数,是这一行我不太明白它的含义
all_different([H | T]) :- member(H, T), !, fail.
从递归函数中提取:
all_different([H | T]) :- member(H, T), !, fail.
all_different([_ | T]) :- all_different(T).
all_different([_]).
我所理解的只是它将一个列表分成一个 Head H 和一个 Tail T 并检查 H 是否包含在 T 中......我的问题是,它是什么“!” 而“失败”呢?