Horner's rule for polynomial evaluation: Difference between revisions

Content added Content deleted
Line 528: Line 528:
=={{header|Prolog}}==
=={{header|Prolog}}==
Tested with SWI-Prolog. Works with other dialects.
Tested with SWI-Prolog. Works with other dialects.
<lang Prolog>horner_rule([], _X, 0).
<lang Prolog>horner([], _X, 0).


horner_rule([H|T], X, V) :-
horner([H|T], X, V) :-
horner_rule(T, X, V1),
horner(T, X, V1),
V is V1 * X + H.
V is V1 * X + H.
</lang>
</lang>
Output :
Output :
<lang Prolog> ?- horner_rule([-19, 7, -4, 6], 3, V).
<lang Prolog> ?- horner([-19, 7, -4, 6], 3, V).
V = 128.</lang>
V = 128.</lang>