タグ

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

  • 読了: Computer Organization and Design, Revised Printing, Third Edition, Third Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) - lethevert is a programmer

    Computer Organization and Design, Revised Printing, Third Edition, Third Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) 作者: David A. Patterson,John L. Hennessy出版社/メーカー: Morgan Kaufmann発売日: 2007/06/20メディア: ペーパーバック購入: 1人 クリック: 41回この商品を含むブログ (7件) を見る 2007/12/8 - 2008/1/3 622pp. (600pp./月) このは、もっと早くに読んでおくべきだったと思った。プログラマなら必読だと思う。

    読了: Computer Organization and Design, Revised Printing, Third Edition, Third Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design) - lethevert is a programmer
    syd_syd
    syd_syd 2008/01/03
    パタヘネ本の三版原著
  • Re: 関数プログラミング - lethevert is a programmer

    このあいだの記事の続きというか。ちょっと古い記事ですが[id:nobsun:20070417:FunctionalBrain]をみて考えたというか。 昔、[id:lethevert:20060329:p1]とか[id:succeed:20060331:1143826028]とかで議論にしたことですが、関数型で難しいのは、オブジェクトの共有という構造なんですよね。オブジェクトの破壊的な更新は一意型のようなトリックで関数的に扱えるので特別問題ないと思うのです。for-notationのようなシンタックスシュガーを作るのも簡単なわけですし。 それどころか、関数プログラミングは状態を表現できないというのは、悪質なデマ(笑)というか嘘もいいとこじゃないですかね。State Monadとかどう説明するのかと。間接的にしか表現できないと言われても、代入しようがレコードごと作りなおそうが、間接的に表現して

    Re: 関数プログラミング - lethevert is a programmer
    syd_syd
    syd_syd 2007/10/03
  • Re: 仕事とSICP - lethevert is a programmer

    http://d.hatena.ne.jp/lethevert/20070610/p1 私は仕事の開発チームの技術力向上の取り組みというのを去年から行っているのだけれど、そこで途中からSICPをテキストで使うようにしている。 なぜ、SICPを選んだかというと、意外かもしれないけれど、即効性が高くて、すぐに仕事に反映できそうだと思ったからだ。選定の際に考えていたのは次のようなことだった。 経験では身につかないプログラミングの深みに触れられること テーマが根元的で普遍的であること 難解ではないこと 実践的であること 効き目が早いこと 効果が持続すること これらの要素を考えると、SICPをおいて他のテキストではなかなかよいは見つからない。はっきりいって、中級レベルのプログラマに対するSICPの破壊力は抜群ではないかと思う。 とはいえ、SICPは独学するには結構きついだろうとは思う。電車の中で

    Re: 仕事とSICP - lethevert is a programmer
    syd_syd
    syd_syd 2007/06/29
    SICPは即効性が高いとの声
  • Concurrent Clean: 一意性と抽象型と共変反変 - lethevert is a programmer

    いろいろ実験して、言語リファレンスを読んだ結果、一意性について理解が深まりました。 とりあえず、関数型と一意性の間には、通常の型のように共変反変の関係があります。 ::R a b :== .(a -> b) createR :: *Char -> *(R Int *Char) createR c = (\i = c) f :: u:(R Int *Char) -> u:(R *Int Char) f r = r Start = f (createR 'a') というプログラムは有効なプログラムです。関数fのところで、共変反変の関係が見て取れます。 この結果、抽象型の場合には、共変反変の判断を付けることができないので、 ::R f :: *R -> R f r = r Start = f (createR 1 2 3) というプログラムは、型エラーになります。

    Concurrent Clean: 一意性と抽象型と共変反変 - lethevert is a programmer
  • 1