09/06/29 13:30:41
>>312
% Prolog
t312(StackIn,StackOut) :-
new_stack(StackIn,NewStack),
get_chars(Chars),
t312_1(Chars,NewStack,StackOut,_).
t312_1([],X,X,true).
t312_1([A|R1],Stack1,Stack2,Return) :-
stack(A,Stack1,Stack3,Return1),
t312_2(Return1),
t312_1(R1,Stack3,Stack2,Return).
t312_2(true) :- !.
t312_2(C) :- write(C).
new_stack(Var,[]) :- var(Var),!.
new_stack([],[]) :- !.
new_stack(Stack,Stack).
stack_1('/',[A|R2],R2,A) :- !.
stack_1(C,Stack1,[C|Stack1],true).