Мне нужны 2 программы, которые создают приведенные ниже примеры выходных данных:
1)
?-length_full([a,[b,c],[d]],R). R=4
2)
?-mirror([a,[b,c],[d,e]],R). R=[[e,d],[c,b],a]
Я пытался, но не мог написать программы... так что, пожалуйста, помогите мне!
Как насчет:
length_full([], 0) :- !. length_full([X|Y], S) :- !, length_full(X, A), length_full(Y, B), S is A+B. length_full(_, 1). mirror([X|Y], Z) :- !, mirror([X|Y], [], Z). mirror(X, X). mirror([], L, L). mirror([X|Y], L, R) :- mirror(X, A), mirror(Y, [A|L], R).