Thank you very much. I have done insert with "-" sign, but have some problems with 'value' predicate.
I wrote:
value(L, X) :-
((member('+', L)) -> append(L1, ['+' | L2], L), decimal(L1, 0, A), value(L2,B), X is A + B);
((member('-', L)) -> append(L1, ['-' | L2], L), decimal(L1, 0, A)...