1. Бинарные деревья задаются с помощью тернарного функтора tree(Left,Root,Right), где Root - элемент, находящийся в вершине, а Left и Right - соответственно левое и правое поддерево. Пустое дерево изображается атомом nil. Следующий терм является примером более сложного дерева tree(nil, 5, tree(nil, 6, tree(tree(nil, 8, nil), 10, nil))). Напишите предикат, p(+T, ?N), который вычисляет наибольшее число N в вершинах дерева T. В приведенном примере должно получиться 10.
2. Определите отношение substitute(+SubTerm,+Term,+SubTerm1,?Term1) следующим образом: если все вхождения подвыражения SubTerm в выражении Term замещаются подвыражением SubTerm1, то будет получено выражение Term1, например: как показано ниже.
?– substitute(sin(x),2*sin(x)*f(sin(x)),t,F).
F= 2*t*f(t)