3 次多項式の値を返すプロシージャが必要です。つまり、次のようになります。
f(x) = x 3 + ax 2 + bx + c
3 つの引数と Newton-Raphson のメソッドを使用するプロシージャでこれを実行できるはずですが、方法がわかりません。
(define f (cubic a b c) ...)
これどうやってするの?
3 次多項式の値を返すプロシージャが必要です。つまり、次のようになります。
f(x) = x 3 + ax 2 + bx + c
3 つの引数と Newton-Raphson のメソッドを使用するプロシージャでこれを実行できるはずですが、方法がわかりません。
(define f (cubic a b c) ...)
これどうやってするの?
関数が関数を返すようにしたいので、
(define cubic
(lambda (a b c) ;; lambda #1
(lambda (x) ;; lambda #2
???))) ;; x^3 a * x^2 + b * x + c
これはクロージャーと呼ばれ、ラムダ 1 が呼び出されるとラムダ 2 が返され、ラムダ #1 の呼び出しからパラメーターを記憶してアクセスできます。
それで
(define f (cubic a b c))
は、 f を取り込んでx
ラムダ #2 の本体にプラグインする関数として定義します。