2011-01-01から1年間の記事一覧

オブジェクト指向から理解する型クラス

Haskell Advent Calendar2011 2日目です。もう42時になってしまいました...さすがに遅いですね。 Haskellと言えば型クラス オブジェクト指向のクラスとHaskellの型クラスは違いますよ的な説明は見ますがどう違うか比べた情報が無い オブジェクト指向知ってい…

続・Template Haskell入門 -- QuasiQuotes編

先にこちらをどうぞ。Template Haskell入門 - think and error QuasiQuotesで簡単なものを作りましょう。 ここではヒアドキュメントを作ろうと思います。Haskellにはヒアドキュメントがないですから。 参考: こんさんのあれ:準クォートでもてかわゆるふわメ…

Haskellの関数合成でひっかかってたこと

関数合成てのは f(g(x))こんなやつです。でもたまには次のようにやりたくなるわけですね。 h(x,y) = f(g(x,y)) Haskellでの関数合成は(.)です。これで上記をやろうとします。 -- 1引数関数 f x = x + 2 -- 2引数関数 g x y = x * y -- fとgを合成しようとす…

HaskellでBTree書いてQuickCheckでテストしてみた

Haskellが得意なことのひとつに木構造の操作がありますね。 ということでBTree書いてみました。 初め二分木書こうと思っていたんだけど、あまりにも簡単すぎたのでB木に変更。 そしたら思ったより難しくなってしまい。 参考:http://pfp7.cc.yamaguchi-u.ac.…

リテラルが多相的であること、もしくは値コンストラクタの要らないデータ構造

本を適当に開いて読んでみるということをたまにする。 Real World Haskell(RWH)のデータ構造の章。 ghci> 3 * 2 + 4 10 ghci> prettyShow $ 3 * 2 + 4 "3 * 2 + 4" こんな感じのものが書いてあった訳だ。 僕には何が起こっているか全然分からなくて、一体ど…

Enumでシーザー暗号、もしくは既知の型のインスタンス一部変更

Enumクラスのメソッドsucc, pred使うとシーザー暗号簡単に書けそうですよね。 succはsuccessorの略で、次に続く値を返してくれます。 数値の場合はインクリメントした値を返します。 predはpredesessorですね。数値ではデクリメントした値を返します。 caesa…

Template Haskell入門

Template Haskell(以下TH)超入門です。 まあ入門するのは僕ですが。 Haskellの易しいエントリがあまり見あたらないため、僕が書いていくことにしようとか考えたり。 続き よかったらこちらもどうぞ。 続・Template Haskell入門 -- QuasiQuotes編 - think and…

オライリー半額セールで色々買った!!

Erlangプログラミング 検索と発見のためのデザイン プログラミングF# リファクタリング・ウェットウェア アート・オブ・SQL アート・オブ・アジャイル デベロップメント インターフェイス指向設計 プロダクティブ・プログラマ ThoughtWorksアンソロジー ソフ…

誰でもできる「5秒でわかる世界で最も正確な性格テスト」の作り方

MSN ニュース はてなブックマークを見るとみんな口を揃えてバーナム効果、バーナム効果て。皆がバーナム効果大好きなことはよくわかったよ。 でもたまにはバーナム暗号のことも思い出してあげてください。 バーナム暗号 - Wikipedia 完全暗号ですよ。解読者…

ほしい

「MacBook Air 11インチ欲しい!」 僕はエンジニアであり、世界を色々面白いように変えてやるのでください。 ただ僕はMacbook Air 11インチのCPU1.6GHzでRAMを4GBにしたやつが欲しいため、自分の分は自分で買います。 なので実際にもらったら両親に進呈しよ…