タグ

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

  • 関連タグはありません

タグの絞り込みを解除

schemeとalgorithmとfunctionalに関するjjzakのブックマーク (5)

  • Church numerals と Lambda Calculus アルゴリズムとデータ構造入門 補足

    Church Numerals と Lambda Calculus アルゴリズムとデータ構造入門 補足 後半は佐藤雅彦先生に教えてもらいました. SICP Exercise 2.4 〜 Exercise 2.6 誤解を恐れずに大雑把にいうと, λ計算では名前つきのシンボル (名前付きの手続き) による再帰呼出しや special form が使えないところが Scheme と違うところです. そのため, λ計算を Scheme で行うためにはいろいろな工夫が必要となります. そのポイントは closure (閉包) と呼ばれる構造です. 自然数 n の Church numeral を c(n) とすると, c(n) f x = (f ... (f x)), ただし, f は n 回出現. となることを利用します. まず, c0 と successor を定義します. (SICP Ex.

  • MapReduceの本質 - 中しまのメモ

    また一つ、『計算機プログラムの構造と解釈』から面白いネタが飛び出してきた。 計算機プログラムの構造と解釈 一見なんでもないようなschemeの例題から、GoogleのIndex生成アルゴリズムとして名高いMapReduceの概要を理解するための機会を得た。 あの例題の質は何だったのか? きっかけは、先日の「プロセスの抽象化(シーケンスへの作用)」というエントリーに関して、会社の先輩から興味深い指摘をいただいたことだった。エントリーの内容は、抽象化によって「木構造の要素に対して作用する手続き」を改善するという話だが、その改善前後の手続きをもう一度掲載する。 【A】改善前の実装 (define (sum-odd-squares tree) (cond ((null? tree) 0) ((not (pair? tree)) (if (odd? tree) (square tree) 0))

    MapReduceの本質 - 中しまのメモ
  • なんでも継続

    Shiro Kawai まだ下書き Schemeの特徴をあげるときに、「継続」や「call/cc」が出て来ないことはない。 でも、R5RSのcall/ccの項をいくら読んでも、どうもよくわからない。 call/ccを使えばC言語のbreakみたいなのとか、コルーチンとかいう スレッドもどきとかが書ける、というのはわかったけど、一体そういうのが書けて 何が嬉しいのか、そこんとこがピンと来ないんだ。 今、そこにある継続 プログラミングの世界の概念には、禅の公案のようなものがある。 それを説明する文章はほんの一文なのに、最初に目にする時、 その文は全く意味をなさない、暗号のように感じられる。 だがひとたびその概念を理解すると、 その概念の説明は確かにその一文で説明されているのがわかるのだ。 そんな、「分かれば分かる」という禅問答の中でも 「継続」は最も謎めいたものの一つと言えるだろう。 文献を

  • 色々な言語でライフゲーム

    Squeak Perl Scheme Ruby Prolog 色々な言語でライフゲームを作ってみました。 ライフゲームについてはライフゲーム保存会 が詳しいです。また、The Game of Life ですばらしい Java アプレットを遊ぶ事が出来ます。 まず手始めに、Squeak で原型を作りました。Squeak は オブジェクト指向の元祖である Smalltalk の直系の子孫です。最近の言語はどれもオブジェクト指向の 影響を受けているので、まず Squeak で作ったら他にも移植しやすいだろうと思ったのです。 作りながら決めた仕様は以下のとおり。 盤のサイズは 20 x 20 最初ランダムなパターンが現れる 0.2秒に一度世代交代 50 回世代交代をしたらまたランダムなパターンを生成 盤のクラス名は LifeMap ただ、Squeak 版以外は手を抜いてコマンドライン実行です。全部

  • Scheme演習

    成績について Schemeの成績はレポートのみ(出席は取らない) レポートは完全にできていなくても提出できた分をそれなりに評価する 課題について 提出は hara2001-scheme @ ui.is.s.u-tokyo.ac.jp へメールで送ってください 送信されたE-mailに対して自動的に返信メールが送られます 添付ファイルではなくメール文に直接貼ってください (ただしどうしても文字化けしてしまう人はテキストファイルを添付してください) Subjectは "Report (課題番号) 学生証番号" で送ってください 例: Report (1) 123456 課題の文の先頭に Scheme演習 第1回レポート 理科I類2年 123456 須木 異夢 という形式で名前等を書いてください 締め切りは次のScheme演習の前日 授業で出題する前に課題を提出してもかまいません (質問も受

  • 1