我正在研究这个精彩的Prolog项目,我陷入这种情况,我需要将某些单词翻译成其他单词(例如“我”变成“你”。“我变成你的”)
这就是我所做的,我很确定它有点不确定。我输入句子,当它转换它只改变一个单词然后继续古怪我。 (例如“我感到高兴”改为“你”,然后崩溃。)
translate([]).
translate([H|T], [NewH|NewT]):-
means(H,NewH);
spit(T,NewT).
means(i,you).
means(my,your).
means(mine,yours).
答案 0 :(得分:2)
以下是修复:
translate([], []).
translate([H|T], [NewH|NewT]):-
means(H, NewH),
translate(T,NewT).
means(i, you) :- !.
means(my, your) :- !.
means(mine, yours) :- !.
means(X, X).
更改如下:
translate
。:- !
部分表示如果您匹配此部分,请不要尝试其余部分(这是为了避免列表始终与自己匹配)。使用示例:
?- translate([this, is, i], X).
X = [this, is, you].