SICPの練習問題1.6の解説は?
2023-10-09 03:20:33
質問
私はちょうどSICPをやり始めたところです(自分自身で、これはクラスのためではありません)。 これは、Alyssaが再定義した
if
の観点から
cond
のように
(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause))
彼女はいくつかの簡単なケースでテストに成功し、それを使って平方根のプログラムを書き直しました(このプログラムは
if
):
(define (sqrt-iter guess x)
(new-if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
Alyssaがこれを使って平方根を計算しようとするとどうなりますか? 説明せよ。" [必要であれば、他の手順も再現しても構わない(
good-enough?
,
improve
など)、教えてください] 。
今、何が起こるかはわかっています:値が返らない、つまりプログラムが無限に再帰するのです。 しかし、なぜこのようなことが起こるのかを説明することができません。 という微妙な違いがあるにせよ
if
と
new-if
がわからないのです。 任意の、すべてのヘルプは非常に感謝しています。
どのように解決するのですか?
new-if
は関数です。関数が呼び出されたとき、Scheme は引数リストに対してまず何をするのでしょう。それは
をすべて
を評価します。
関連
-
[解決済み】再帰使用時のOcamlエラーUnbound Value
-
[解決済み】MIPSアセンブリを使用した再帰的な関数
-
[解決済み] リストを反転させるにはどうしたらいいですか?
-
[解決済み] 再帰的な関数をフローチャートで表現するには?
-
[解決済み] Fatal error.の解決方法 PHPの「Fatal error: Maximum function nesting level of '100' reached, aborting!
-
[解決済み] Lispで再帰関数はどのように動作するのですか?
-
[解決済み] 再帰から反復への道
-
[解決済み] foldrとfoldl(またはfoldl')の意味するところ
-
[解決済み] 再帰性はそれ自体が特徴なのか?
-
[解決済み] 再帰性の実例【非公開
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】再帰使用時のOcamlエラーUnbound Value
-
[解決済み】MIPSアセンブリを使用した再帰的な関数
-
[解決済み] リストを反転させるにはどうしたらいいですか?
-
[解決済み] 再帰的な関数をフローチャートで表現するには?
-
[解決済み] Fatal error.の解決方法 PHPの「Fatal error: Maximum function nesting level of '100' reached, aborting!
-
[解決済み] Schemeにおける再帰的関数
-
[解決済み] Lispで再帰関数はどのように動作するのですか?
-
[解決済み] 再帰的関数の複雑さの決定(Big O記法)
-
[解決済み] 再帰性はそれ自体が特徴なのか?
-
[解決済み] 再帰性の実例【非公開