Buonasera è da giorni che ci provo ma non riesco...
I monomi devono essere rappresentati da termini siffatti:
m(Coefficient, TotalDegree, VarsPowers)
per i quali si pu`o scrivere il predicato:
is_monomial(m(_C, TD, VPs)) :-
integer(TD),
TD >= 0,
is_list(VPs).
Tralasciamo al momento come controllare Coefficient. La lista VarsPowers contiene termini come il
seguente:
v(Power, VarSymbol)
per i quali possiamo scrivere il predicato:
is_varpower(v(Power, VarSymbol)) :-
integer(Power),
Power >= 0,
atom(VarSymbol).
Chi riuscirebbe a risolvermi il Predicato as_monomials(Expression, Monomial) cioè :
Il predicato as_monomials `e vero quando Monomial `e il termine che rappresenta il monomio risultante del parsing dell'espressione Expression.
Esempio
?-as_monomials (3*y*w*t^3, M).
M = m(3, 5, [v(3, t), v(1, w), v(1, y)].
E spiegarmi il motivo?