所以这是我当前的代码库结构。
trans([], []).
trans([H|T], [NewH|NewT]):-
means(H, NewH),
trans(T,NewT).
means(one, uno) :- !.
means(two, dos) :- !.
means(X, X) :- !.
Question1
这大致符合我想要的方式。例如,如果我输入prolog编译器:
trans([bob,uno,dos],X)。
它将返回:X = [bob,uno,dos]正确,但是如果我插入带有大写字母的参数,例如:
trans([Bob,uno,dos],X)。
出于某种原因,它引发了许多错误。我该如何解决,这样才不会发生?
Question2
[目前,它将答案返回到包含多个单词的列表中,例如(trans([bob,one,two],X)。将返回X = [bob,uno,dos]。
我如何制作它,以便它返回我所连接单词的列表? (例如:X = [bob uno dos])
非常感谢!
如果在Prolog中某些内容以大写字母开头,则始终将其解释为变量。那只是语法,但是您可以使用字符串。所以
trans(["Bob", "uno", "dos"], X).