Buongiorno è 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?
|