Как я могу реализовать алгоритм объединения на таком языке, как Java или C #?

я работаю через свой учебник AI, который я получил, и яМы подошли к последней задаче домашнего задания для моего раздела: "

Внедрите алгоритм объединения, описанный на стр. 69, на любом языке по вашему выбору ».

На странице 69 у вас есть следующий псевдокод для алгоритма объединения:

function unify(E1, E2);
    begin
        case
            both E1 and E2 are constants or the empty list:
                if E1 = E2 then return {}
                else return FAIL;
            E1 is a variable:
                if E1 occurs in E2 then return FAIL
                 else return {E2/E1}
            E2 is a variable
                if E2 occurs in E1 then FAIL
                    else return {E1/E2}
            either E1 or E2 are empty then return FAIL
            otherwise:
                begin
                    HE1 := first element of E1;
                    HE2 := first element of E2;
                    SUBS1 := unify(HE1, HE2);
                    if SUBS1 := FAIL then return FAIL;
                    TE1 := apply(SUBS1, rest of E1);
                    TE2 := apply(SUBS1, rest of E2);
                    SUBS2 := unify(TE1, TE2);
                    if SUBS2 = FAIL then return FAIL;
                         else return composition(SUBS1, SUBS2)
                end
            end
        end

Теперь я понимаю общую концепцию объединения, но совершенно не представляю, как бы я начал реализовывать это на языке, таком как Java или C # .I '

Я даже не уверен, как будет выглядеть сигнатура метода. Какой тип переменных это займет? Я'Я вполне уверен, что мне нужно возвращать списки для представления конструкций исчисления предикатов, но это предположение.

Например, когда говоритсяЕ1 это переменнаяхорошо, если яЯ передаю его в метод Unify, как это может быть иначе? Я мог бы проверить на ноль, но будет ли это иначе, чем "пустой список "?

Может кто-нибудь помочь мне или указать мне правильное направление для реализации алгоритма Unificaiton в C # или Java?

Ответы на вопрос(4)

Ваш ответ на вопрос