タグ

2011年10月9日のブックマーク (12件)

  • 最高のHaskell入門書 - あどけない話

    輪講で「Programming in Haskell」をようやく読み終えました。このは、最高のHaskell入門書といって間違いないでしょう。 Programming in Haskell 作者: Professor Graham Hutton出版社/メーカー: Cambridge University Press発売日: 2007/01/18メディア: ペーパーバック購入: 2人 クリック: 67回この商品を含むブログ (22件) を見る 一緒に Haskell のを何か読もうという話が、友達との間で出たとき、最初は「The Craft of Functional Programming」にしようかと思っていました。ただ、出版社の人から「Programming in Haskell」を勧められたことがあったので、二冊を友達に提示したところ、直感で「Programming in Has

    最高のHaskell入門書 - あどけない話
  • OOコード養成ギブス - rants

    Binstock on Software: Perfecting OO's Small Classes and Short Methods The Pragmatic Programmersシリーズの新しい、The ThoughtWorks Anthologyの中に 興味をそそるエッセイがある。Jeff Bayの"Object Calisthenics"だ。 これは良いオブジェクト指向の性質を実証する小さなルーチンを書く方法をマスターするための 詳細にわたるエクササイズだ。オブジェクト指向なルーチンを書く能力を向上させたい開発者がいるなら このエッセイに目を通すことを勧める。ここにBayのアプローチを要約してみよう。 彼は次にあげられる制約のもとに1000行のプログラムを書くことを勧めている。 これらの制約は意図的に過剰な制限となっているが、これは開発者を手続き的なやり方から脱却させるた

    OOコード養成ギブス - rants
  • CSSアニメーションの基礎

    今さらながらCSS Animationsの使い方が分かってきたので、プロパティなどを簡単にまとめておきたいと思います。 これを書くにあたって、以下の2つを参考にしました。 CSS Animations Editor’s Draft 25 July 2011CSS animations - MDN上のはdev.w3.orgにある、2011年7月25日版のエディターズドラフトです。 ちなみにwww.w3.orgにある仕様は「CSS Animations Module Level 3」です。これを書いている現在、こっちは2009年3月20日版が最新となっています。 基的に2011年7月25日版のエディターズドラフトをベースに説明したいと思います。なので、現在のブラウザの実装とは異なることもあります。 2つ目のは『Mozilla Developer Network』のドキュメントです。日語版も

    CSSアニメーションの基礎
  • モナディック・パーサー - あどけない話

    「ふつうのHaskellプログラミング」や 「構文解析結合子」の元ネタは、どうやら「Monadic parsing in Haskell」のようです。(さらに元ネタは Parsec ですかね。) このオリジナルは、MonadPlus の部分などが古くさいのですが、分りやすいです。というわけで、例題を Parsec 風にアレンジしつつ、勉強してみました。 四則演算式のパーサーを実現することを目標にします。 おまじない 最終的に以下のモジュールが必要になるので、import しておきます。 import Monad import Data.Char Parser の定義 Parser 型の定義はこうなります。 data Parser a = Parser (String -> [(a,String)]) 状態を表すために関数を使っている 関数を使うと状態が表現できることが分らない人は、先に「状

    モナディック・パーサー - あどけない話
  • 関数と正規表現と私 - d.y.d.

    00:46 10/04/23 EDBT/ICDT 2010 先月 EDBT/ICDT 2010 という学会に行ってきたのですが、それについて何も書いてなかったので今頃書きます。 自分より一ヶ月後に同じローザンヌに行って噴火に巻き込まれて帰国まで延びてしまっているみずしまさんがお帰りになるよりは早く書かないと的気分がなきにしもあらずです。 データベースの会議なんですが、 こちらの分野は SIGMOD/PODS の流れで、 実装寄りの会議と理論よりの会議を合わせて共同開催するブームらしい。 参加者としては、色んな幅広いトークが聴けるのは単純に楽しいので、もっと広まると面白そうだなあと感じました。 プログラミング言語で言うと PLDI/POPL とするみたいなものでしょうか。 それが良いかどうか判断できるほどPLDIの方の雰囲気を知らないのでわかりませんが。 オートマトン方面だと CIAA/DL

  • 正規表現しちへんげ! 第二夜

    09:25 10/12/31 年末まとめ 今年何やったっけ、と日記を読み返していました。何もやってないな…。 Polemy 作りました、くらい。 言語処理系作るのはやっぱり楽しいですね。 汎用言語として使う格的なものを作ろうとすると懲りすぎて一歩も進まなくなってしまう自分が見えるので、 来年は、そうだなあ、TopCoder/ICPC風コンテストに特化した言語というかC++へのトランスレータ、 くらいに絞って作ってみようかなあ。 書いた記事だと 最短性チェックの話 が自分では割と気に入っています。 これのもっとバグを許容するバージョン作れないか。 読んだ論文で面白かったのは "A Pearl on SAT Solving in Prolog" と "When Simulation Meets Antichains" (PDF) など。 あとは、今年読んで面白かったベスト5(順不同): 『

  • 型レベルプログラミングの会 - d.y.d.

    15:08 09/04/28 Mergesort 「集合」を明示的に値とするアプローチ [1] [2] だと、「同順の要素の並びはどちらでもいい」ソートアルゴリズムは、 全ての可能なソート順の集合を返すことになると思います。 -- msort_one xs = one_of (msort xs) msort [] = {[]} msort xs = let (ys,zs) = split xs in {merge xs' ys' | xs'∈msort xs, ys'∈msort ys} where merge ys [] = {ys} merge [] zs = {zs} merge (y::ys) (z::zs) = if y<z then {y::ws | ws ∈ merge ys (z::zs)} else if z<y then {z::ws | ws ∈ merge (y::

  • Gitをバックエンドに使ったプログラマ向きWiki - Gitit - Masatomo Nakano Blog

    Wikiというものはとても便利なんだけど、 大量の文章を書くにはWebブラウザのインターフェースはまだまだ辛い オフラインで使えない(文章書くのは電車が一番) 複数の文章を再構成したり、一括で検索したり、置換したりは、Webだとやっぱりきびしい と言った欠点がある。 とは言え、誰でも気軽に編集できるWikiの魅力も捨てがたい。 そこで、「Wikiではあるんだけど、ローカルでも自分の好きなエディタで簡単に編集できるツールないかなー」と探してみたら、 Gitit というWikiを発見した。 ここ数日、結構な量のドキュメントをGititで書いてみて、わりと満足しているのだけど、検索してもGititの日語の情報があまり出てこないので紹介してみる。 Gititの特徴 コンテンツをGitのレポジトリに保存する。 そのGItレポジトリをcloneして好きなようにいじってからcommit/pushすれば

  • gititが便利 - Rhythm & Biology

    gititを下の記事で知ったので、早速導入してみました。 http://blog.madoro.org/mn/91 環境はSnow Leopardで、Haskell Platformを導入済みです。 まずは、cabal-installをアップデートしておきます。というのも、cabal-installが古いとnetworkというモジュールのインストールに失敗し、先に進めなくなります(snow leopardのみで起きる現象のようです)。 http://trac.haskell.org/network/ticket/35 % cabal install cabal-install --reinstall % cabal --version cabal-install version 0.10.2 using version 1.10.1.0 of the Cabal library % cab

    gititが便利 - Rhythm & Biology
  • わかった気になるgitit-0.8

  • Wiki設置するならgitit!

    ソースコードはこっち https://gitorious.org/masterq-docs/masterq-docs/trees/master/presentations/20110528_qpstudyRead less

    Wiki設置するならgitit!
  • EmacsWiki: Emacs Scripts

    JohnSwaby presented an idea on the emacs-devel MailingList on how to use “:;” as an alternative to “#!” to start Emacs scripts.[1]The shebang (”#!”) works for many languages because their comment character is a number sign, #, and they require only two arguments to run a script.The sesquicolon (”:;”) works for Emacs because it allows for more than two arguments and it is compatible with the Lisp c