simonpj による STM 解説記事

This entry was posted by on Sunday, 4 February, 2007

Simon Peyton Jones という Haskell のほうの偉いひとが、何かの本に STM の解説記事を書くことになったということで、コメントを求めています。http://haskell.org/haskellwiki/Talk:SantaClausProblemV2

でまぁコメントはいっぱい集まっているんですがそれはともかく、リンク先からさらにリンクされているこの論文はとても良いのでおすすめ。本の想定読者は Haskeller に限らないため、論文でも Haskell の基本から説明をはじめて、 STM (Software Transactional Memory) を使った並列プログラミングの解説をしています。

内容もいいんだけど、非常に(おれの耳に)心地良いのは次の一文。

>

Haskell is, first and foremost, a functional language.Nevertheless, I think that is is also the world’s most beautifulimperative language. Considered as an imperative language,Haskell’s unusual features are that > >

  • Actions (which have effects) are rigorously distinguished from pure values by the type system. >
  • Actions are first class values. They can be passed to functions, returned as results, formed into lists, and so on, all without causing any side effects.
  • >

    Haskell は、まず第一には関数型の言語である。そうであるが、私は Haskell は世界でもっとも美しい命令型言語でもあると思う。命令型言語として考えると、 Haskell の珍しい特徴は、 > >

  • アクション(動作をともなうもの)と純粋な値とは、型システムによって厳密に分離されている >
  • アクションはファーストクラス値である。関数に受け渡したり、結果として返したり、リストにしたり、といったことができて、そのときにはどんな副作用も生じない。
  • ほんとそうだと思うんですよね。「アクション」というのはいわばコード片みたいなもので、それを変数に代入したり、リストにしたり、関数の引数にしたり、もちろん好きなように組み合わせて新しいアクションを作ったり……ということができるようになっているわけです。これが面白い。

    あ、でも、内容はいいかもしれないけど、本当に Haskell を何も知らないプログラマが読んで理解できるかどうかはまた別ね。念のため。

    Comments are closed.