Horner's rule for polynomial evaluation: Difference between revisions
Horner's rule for polynomial evaluation (view source)
Revision as of 16:20, 5 May 2022
, 2 years ago→{{header|Picat}}
(Emacs Lisp: Improve formatting, use cl-lib) |
|||
Line 1,590:
echo horner($coeff, $x), "\n";
?></lang>
=={{header|Picat}}==
<lang Picat>go =>
horner([-19, 7, -4, 6], 3, V),
println(V),
horner2([-19, 7, -4, 6], 3, V2),
println(V2),
V3 = horner3([-19, 7, -4, 6], 3),
println(V3),
nl.
% Prolog style
horner([],_X,0).
horner([H|T],X,V) :-
horner(T,X,V1),
V = V1 * X + H.
% Iterative version
horner2(Coeff, X, V) =>
Acc = 0,
foreach(I in Coeff.length..-1..1)
Acc := Acc*X + Coeff[I]
end,
V = Acc.
% Functional approach
h3(X,A,B) = A+B*X.
horner3(Coeff, X) = fold($h3(X),0,Coeff.reverse()).</lang>
Output:
<pre>128
128
128</pre>
=={{header|PicoLisp}}==
|