在Prolog中写长度和镜子

时间:2010-11-04 16:27:02

标签: prolog

我需要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 :(得分:-1)

怎么样:

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).