エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
末尾再帰という考えを知って間もない頃、関数の内部で関数を定義することにまだ違和感を持っていたので... 末尾再帰という考えを知って間もない頃、関数の内部で関数を定義することにまだ違和感を持っていたので、named letを知ってからしばらくは末尾再帰で書けるものは何でもnamed letで書いていた。 internal defineに馴れてnamed let狂いの時期が過ぎた頃からちょっと大きな(と言ってもたかが知れてて、まぁ200行とか300行とかの)プログラムが急に書けるようになったのを覚えている。 named letは簡単なループのようなものを書くときには便利だけど、少し処理が複雑になってくるとすぐに書きにくくなってくるように感じる。internal defineの(末尾再帰的な処理を書くときにnamed letに対して持つ)優位性は2つくらいのことに起因するんじゃないかと思う。 まず、初期値の設定を遅らせることができること。named letでは、 (define (sum n) (