タグ

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

タグの絞り込みを解除

OCamlとschemeに関するokagawaのブックマーク (2)

  • SRFI-45 - osiire’s blog

    concurrent cellのFRPの実装においてfilterがメモリリークする問題があって、どうするべと悩んでいたのだけれど、まさに解決策があった。SRFI-45(http://srfi.schemers.org/srfi-45/)とその日語訳(http://www.katch.ne.jp/~leque/translations/srfi-45/srfi-45j.html)。紹介してくれた&日語訳を公開してくれているleque氏に感謝感激雨あられ。なにはともあれ、OCamlで同等のプログラムにしてみた。テストも何もしていないので怪しいけど、たぶんこんな感じ。OCamlにはdefine-syntaxなんてないので、そこはlazyにしてある。 let (!$) = Lazy.force type 'a exp = 'a Lazy.t and 'a t = ILazy of 'a pro

    SRFI-45 - osiire’s blog
    okagawa
    okagawa 2010/03/01
    遅延評価とメモリリーク。SRFI-45
  • 不動点演算子ふたたび - sumiiの日記

    (追記:Yコンビネータって何に使うの?) Yコンビネータ(Curryの不動点演算子)を説明するのがプチブーム(死語)らしいので、ふたたび挑戦。 まず、ふつーに再帰関数factをSchemeで定義してみる。 (define fact (lambda (n) (if (= n 0) 1 (* n (fact (- n 1))))))この定義は、右辺にfact自身が出現するので、再帰的定義なのであった。ここから右辺にfactが出現しないようにするのが目標。とりあえず、factを関数の引数として外から受け取るようにしてみる。 (define make-fact (lambda (my-fact) (lambda (n) (if (= n 0) 1 (* n (my-fact (- n 1)))))))これは( (make-fact fact) 10)みたく使えるが、make-factを呼び出す際に

    不動点演算子ふたたび - sumiiの日記
    okagawa
    okagawa 2007/11/08
    型つき言語での不動点演算子の定義方法など
  • 1