タグ

internal-defineに関するishideoのブックマーク (1)

  • internal defineのすすめ - Homoiconic Days

    末尾再帰という考えを知って間もない頃、関数の内部で関数を定義することにまだ違和感を持っていたので、named letを知ってからしばらくは末尾再帰で書けるものは何でもnamed letで書いていた。 internal defineに馴れてnamed let狂いの時期が過ぎた頃からちょっと大きな(と言ってもたかが知れてて、まぁ200行とか300行とかの)プログラムが急に書けるようになったのを覚えている。 named letは簡単なループのようなものを書くときには便利だけど、少し処理が複雑になってくるとすぐに書きにくくなってくるように感じる。internal defineの(末尾再帰的な処理を書くときにnamed letに対して持つ)優位性は2つくらいのことに起因するんじゃないかと思う。 まず、初期値の設定を遅らせることができること。named letでは、 (define (sum n) (

    internal defineのすすめ - Homoiconic Days
  • 1