2

私がやりたいのはPrologの翻訳者です。私は1つの単語を翻訳するためにこのようなことをしました:

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

そして、あなたがPrologに尋ねるとtraducir(X,cat)、それは答えます。X=gato 私がやりたいのは、あなたが何かを尋ねる翻訳者でありtraducir(X,[Hola,mi,nombre,es,Juan]).、Prologの答えはであるはずですX=[Hello,my,name,is,John]

4

4 に答える 4

5

ここにもう1つあります:

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 に答える