2012-02-01から1ヶ月間の記事一覧

ちょび〜っとだけvimをカスタマイズ

vim

ほんとに、ちょびっとだけ。カスタマイズと呼ぶのが恥ずかしいほどです。とにかくscalaのコンパイル/実行手順が面倒で、小さなテストに一々MakeFileを作るのもアホらしい話なので、軽くVimScriptの書き方を調べて、次のような.vimrcファイルを仕立ててみま…

Scalaに挑戦してみた

関西で開かれる関数型勉強会で、発表する機会を得たので、Haskell以外の関数型言語にも触れておく必要があると考えて、Scalaの使い方を覚える事にしました。 Scalaは今も後需要が高まっていきそうな言語なので、使えるようにしておくのは良いかもしれません…

ポイントフリースタイルの歪んだ美

例えば、xを2倍してshowする関数fを考えます。 素直に書けば次のようになるでしょう。 Prelude> let f x = show (x * 2) Prelude> f 5 "10"こういったシンプルな処理は、ポイントフリースタイルにするのがHaskellらしいプログラミングですね。 Prelude> let…

Haskellでチューリングマシン(4) 命令の実行処理を作成

前回、テープの走査をモナドに包む時に、テープの値と一緒に、「ヘッドのステータス」を状態として保持できるようにしました。 この値は単なるInt型として実装したのですが、明確なアイデンティティを与えるため、HeadStateという別名を付けました。 --ヘッ…

Arrowの基本(3) |||演算子で条件分岐

Arrowの基本、三本目の記事は、Arrowが関数を繋いでいく流れの中で条件分岐を作り出す ||| 演算子の再実装をしていきます。 Prelude Control.Arrow> :i (|||) class (Arrow a) => ArrowChoice a where ... (|||) :: a b d -> a c d -> a (Either b c) d -- D…