You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sicp-all-tasks/sicp/2_002e34

182 lines
1.5 KiB

Exercise 2.34: Evaluating a polynomial in
x
at a given value of
x
can be formulated as an accumulation. We evaluate
the polynomial
a
n
x
n
+
a
n
1
x
n
1
+
+
a
1
x
+
a
0
using a well-known algorithm called
Horner’s rule, which structures
the computation as
(
(
a
n
x
+
a
n
1
)
x
+
+
a
1
)
x
+
a
0
.
In other words, we start with
a
n
, multiply by
x
, add
a
n
1
, multiply by
x
, and so on, until we reach
a
0
.82
Fill in the following template to produce a procedure that evaluates a
polynomial using Horner’s rule. Assume that the coefficients of the polynomial
are arranged in a sequence, from
a
0
through
a
n
.
(define
(horner-eval x coefficient-sequence)
(accumulate
(lambda (this-coeff higher-terms)
⟨??⟩)
0
coefficient-sequence))
For example, to compute
1
+
3
x
+
5
x
3
+
x
5
at
x
=
2
you
would evaluate
(horner-eval 2 (list 1 3 0 5 0 1))