タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

letrecに関するyharaのブックマーク (1)

  • letとletrecが必要なのはなぜか - 飲む、寝る。

    確かに。letとletrecの2種類あるのはなんで? letとletrecの違い そもそもletrecのrecは再帰のこと。なので下のように再帰する定義を書くことができる。 (letrec ((fact (^n (if (zero? n) 1 (* n (fact (- n 1))))))) (fact 10)) 逆にletは非再帰なのでこうは書けない。 代わりに (let ((x 1)) (let ((x (+ x 1))) x)) のように以前の定義をshadowingすることができる。 そしてこれが非再帰のletが必要な理由みたい。 どこでshadowingが必要か ある identifier を、その値を使いつつ再定義する際に必要です {中略} リファレンス参照した上で、結果を同じ identifier に束縛しています。{中略}間違って元のリファレンスセルを参照できなくなりますか

    letとletrecが必要なのはなぜか - 飲む、寝る。
  • 1