2

我想做的是Prolog中的翻译。我做了这样的事情来翻译一个词:

traducir(X,Y) :- traduccion( X, Y ).
traduccion(gato,cat).

当你问 Prolog 时traducir(X,cat),它会回答X=gato What I want to do is a translate 你问类似的东西,traducir(X,[Hola,mi,nombre,es,Juan]).而 Prolog 的答案应该是X=[Hello,my,name,is,John]

4

4 回答 4

5

这是另一个:

traducir(Xs, Ys) :- maplist(traduccion, Xs, Ys).
于 2011-11-30T17:21:22.657 回答
4
traducir([],[]).
traducir([Hin|Tin], [Hout|Tout]) :-
    traduccion(Hin, Hout),
    traducir(Tin,Tout).
于 2011-11-30T17:06:06.457 回答
0

还要添加一个包罗万象的谓词

     tranduccion(X,X) 

在逻辑库的底部,如果要包含未​​翻译的人名。

于 2015-08-02T03:31:34.753 回答
0

要将几种语言翻译成其他几种语言,您可以编写如下谓词:

translate(Lang1,X,Lang2,Y) :-
    Translations = [
        [
            [spanish,perro],
            [english,dog],
            [french,chien],
            [german,hund],
            [italian,cane]
        ],
        [
            [french,chat],
            [spanish,gato],
            [english,cat]
        ]
        %You can add more lists of translations here if necessary.
    ],
    member(Translation,Translations),
    member([Lang1,X],Translation),
    member([Lang2,Y],Translation).

现在您可以traducir像这样定义谓词:

traducir(X,Y) :- translate(spanish,X,english,Y).
于 2016-09-27T05:51:21.070 回答