anyone make any sense of this

Anyone make any sense of this. I can't even figure out what the question is asking.

Using C|C++ implement the unification algorithm:

uni f(f(f(x,y),x),f(f(v,u),g(u,y))):

-{x->g(u,u),v ->g(u,u),y->u}

-f(f(g(u,u),u),g(u,u))

your program should have the same behaviour as the unify with occurs check(term1,term2) build-in predicate of Gnu Prolog. Term 1 and Term 2 are 2 terms where:

-variables are in upper case letter.

-function symbols are in lower case letters.

If anyone know what this means let me know.