Длина письма и зеркало в Прологе - PullRequest
2 голосов
/ 04 ноября 2010

Мне нужны 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]

Я пытался, но не мог написать программы... так что, пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 02 апреля 2013

Как насчет:

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).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...