タグ

ブックマーク / lethevert.hatenadiary.org (2)

  • Concurrent Clean : 再帰を繰り返しに - lethevert is a programmer

    再帰的なプログラムを繰り返し構造に変換するというのは、純粋関数型言語を操る上では(そして、そうでない言語を使う場合にもしばしば)、意外に重要な役割を果たす。というのは、それがある種の「継続」を扱う方法の一つだからだ。 たとえば、次のような再帰的なプログラムを考える。 ::Tree a = Tree a [(Tree a)] showRec (Tree a ts) f # f = fwrites (toString a) f f = foldl (flip ($)) f $ map showRec ts = f //テストデータ l a = Tree a [] t a ts = Tree a ts data = t 1 [t 2 [l 3, l 4], t 5 [l 6], t 7 [t 8 [l 9], t 10 [l 11]]] Start w = w --> stdio --> \(f

    Concurrent Clean : 再帰を繰り返しに - lethevert is a programmer
  • 結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer

    【追記 2008/7/2】とても昔のClosureについて書いた記事が注目を集めてしまったみたいですが、ぜひ、もっと後で書いた次の記事とその関連スレッドの方も確認してみてください。このときよりも、もう少し事情が分かってから書いたものなので、より正確に状況を理解できると思います。それに、私自身、この言葉にはまだ混乱しています・・・ http://d.hatena.ne.jp/lethevert/20070524/p2 - という問いに対して、そろそろ私の結論を整理しておきます。 これは、将来の自分に対する参照の便のための整理です。 前提知識 前提知識として、こちらの内容を読んで理解しておきます。 Closure (computer programming) - Wikipedia [id:lethevert:20060119:p1] [id:lethevert:20060121:p2] また

    結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer
  • 1