我需要做以下事情:我有事件
word([p,r,o,l,o,g]).
word([p,r,o,l,o,g]).
我需要找到错误的字母:
e.x wrong_letter([p,r,o,l,o,u,g],X).<br>
X=u
thay是我的程序但是没有工作:
wrong_letter([X|Y],L) :-
word(H),
member(X,H),
wrong_letter(Y,L).
提前感谢,抱歉我的英语不好。
答案 0 :(得分:1)
如果您输入的单词中只有一个错误的字母(添加的字母),您可以:
append/3
append/3
那看起来:
wrong_letter(WrongWord, Letter):-
word(Word),
append(Head, Tail, Word),
append(Head, [Letter|Tail], WrongWord).
测试:
?- wrong_letter([p,r,o,l,o,u,g], X).
X = u ;
使用select/3
:
wrong_letter(WrongWord, Letter):-
word(Word),
select(Letter, WrongWord, Word).