タグ

2009年3月27日のブックマーク (6件)

  • PHP: class_implements - Manual

    kobapan
    kobapan 2009/03/27
  • R5RS (Revised^5 Report on Algorithmic Language Scheme) 日本語訳

    back これは Suzuki Hisao さん (suzuki@otsl.oki.co.jp) による、 Scheme の仕様書 R5RS (Revised^5 Report on Algorithmic Language Scheme) の日語訳です。新山が訳したわけではありません。 1999年 3月に fj.comp.lang.lisp に投稿されたものを、新山が コンパイル、変換しました。 R5RS の日語訳としては、犬飼 大さんによる日語訳が多く出回っていますが、 新山は Suzuki さんによる版のほうが読みやすいと思います。 [Gzipped tar, 97k] r5rs-ja.tar.gz Suzuki さんによって最初に fj に投稿された TeX ソースのアーカイブ。 以下のファイルはすべてここから生成しました。 [PDF, 430k] r5rs-ja.pdf P

  • Karetta|Gaucheプログラミング|「Lisp脳」の謎に迫る - Schemeプログラマの発想

    この原稿の最新版について この原稿に加筆した最新版が書籍「プログラミングGauche」に収録されています。 引用や紹介をされる方はなるべく書籍収録版を参照してください。 他の言語のプログラマがSchemeプログラムを書くとき、 どうしても発想が手続き的(procedural)になりがちです。 LispプログラマやSchemeプログラマの発想は手続き的な発想とはどうも違うらしい、 ということは分かるのですが、具体的に何が違うのでしょうか? ここではこの謎に迫ってみましょう。 実例 例えばこんな例題があります。 1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。 どうしてプログラマに・・・プログラムが書けないのか? (原題: Why

  • [Ruby]Fiberしてみた

    myugaruさんのBlogでコルーチン(ファイバーとも呼ばれる)の存在を知る。 コルーチン:http://blogs.wankuma.com/myugaru/archive/2008/03/10/127005.aspx そしてRubyにはFiberというクラスがあるらしい 情報モト:http://blogs.wankuma.com/myugaru/archive/2008/03/10/127059.aspx ふむ…このFiberというのは、Ruby1.9からあるみたい。 俺の持ってるRubyは1.8系列…使えないじゃん!!ということで、前回の記事で1.9にアップデートをしました。 ということで準備万端。Fiberを使ってみよう。 Fiberクラスの使い方は簡単で コンストラクタにブロックを渡す resumeでブロックの処理を呼び出す Fiber.yieldで呼び出しもとに戻る という3機

  • コルーチン - Wikipedia

    コルーチン(英: co-routine)とはプログラミングの構造の一種。サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。接頭辞 co は協調を意味するが、複数のコルーチンが中断・継続により協調動作を行うことによる。 サブルーチンと異なり、状態管理を意識せずに行えるため、協調的処理、イテレータ、無限リスト、パイプなど、継続状況を持つプログラムが容易に記述できる。 コルーチンはサブルーチンを一般化したものと考えられる。コルーチンをサポートする言語には Modula-2、Simula、Icon、Lua、C#、Limbo、Swift などがある。マルチスレッドで理論的には同じことができるため、現在はそちらが使われるケースが多い。これはマルチスレッドであれば直接OSやCPUスレッドの支援を受けられることや、エント

  • 思考実験: returnを関数と思ってみる話 - d.y.d.

    21:07 09/03/26 zipWithN twitterでいけがみさんが張ってらした論文が面白かったです。 map f [a1, a2, ..., an] ==> [f a1, ..., f an] zipWith f [a1, ..., an] [b1, ..., bn] ==> [f a1 b1, ..., f an bn] zipWith3 f [a1, ..., an] [b1, ..., bn] [c1, ..., cn] ==> [f a1 b1 c1, ..., f an bn cn] ... zipWith7 f [a1, ..., an] [b1, ..., bn] ... [g1, ..., gn] ==> [f a1 b1 … g1, ..., f an bn … gn] Haskell98 の標準ライブラリの関数ですけど、 1引数関数 f と1つのリスト as