Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- simplify2(end):-!.
- simplify2(Exp+X):-
- write('Exp+X'),write(Exp),write('+'),write(X),nl,
- ( (retract(vv(X/N)),!,
- N1 is N+1,
- assert(vv(X/N1)))
- ;
- ( assert(vv(X/1)),write('@'))
- ),
- simplify2(Exp).
- simplify2(X):-
- write('X'),write(X),nl,
- atomic(X),
- simplify2(end+X).
- list_to_output([C/N|List],Sum,Out):-
- list_to_output(List,Sum1,Out1),
- ( atom(C),
- N>1,!,
- Out=Out1+C*N,
- Sum = Sum1
- ; atom(C),!,
- Out=Out1+C,
- Sum = Sum1
- ; integer(C),
- Sum is Sum1+(C*N),
- Out = Out1
- ).
- list_to_output([],0,'').
- simplify(Expression,Out1):-
- simplify2(Expression),
- findall(C/N,vv(C/N),List),
- list_to_output(List,Sum,Out),
- Out1 =Out+Sum.
Add Comment
Please, Sign In to add comment