タグ

ブックマーク / yunomu.hatenablog.jp (3)

  • Haskellで可変長引数 - yunomuのブログ

    可変長引数を作りたかったわけではないんだけど、というか何がしたかったんだかよく覚えていないんだけど、こういうのを作った。 class Test a where test :: a -> Int test = const 0 instance Test a => Test (b -> a) where test f = 1 + test (f undefined) instance Test Int Test型クラス。 > let c = undefined :: Int > test c 0 > let f = undefined :: Int -> Int > test f 1 > let g = undefined :: Int -> Int -> Int > test g 2 test関数に与えた関数の引数の数を数えられます。 ただし、与える関数の戻り値の型がTestのインスタンスに

    Haskellで可変長引数 - yunomuのブログ
  • 少しはテストを楽しくやる(QuickCheck) - yunomuのブログ

    テストって別にやりたくないわけじゃないっていうかやりたいんですけど、なんかつい後回しになってしまうというか。 でも例えば外部システムとの連携部分だったりすると私は割と真面目にテストを書くんですが、普段はなんかなんとなく面倒臭い。面倒くさいと面倒くさくないの境界線は何なんだ。 外部システム連携みたいな入出力系のテストがそれほど苦じゃないのは、どっちにしろ動作確認で動かすからなんですよね。 一方でそれ以外の部分、いわゆる計算というか、モジュール間のデータのやり取りだったりデータ変換だったりとか、そういう部分のテストがなんで面倒くさいかといったら、それは足し算をテストする時の事を考えるとだいたい想像つくと思いますけど、 @Test void testPlus() { assertEqual(plus(1, 1), 2); assertEqual(plus(1, -1), 0); assertEq

    少しはテストを楽しくやる(QuickCheck) - yunomuのブログ
  • JavaコードをHaskellで書きなおすのに手こずった話 - yunomuのブログ

    「続・アルゴリズムを学ぼう」が発売されて、校正をほんのちょっと手伝ったお礼かなんかで発売されたを頂きまして、ぼちぼち読んだりしています。 前作に比べて使いやすいというか、親しみやすいネタが多くて面白いですね。 「続・アルゴリズムを学ぼう」http://www.amazon.co.jp/dp/4048913948/ で、ちょっと暇つぶしに「続・アルゴリズムを学ぼう」に載ってるリバーシをHaskellで実装してみました。 https://github.com/yunomu/exercises/tree/master/reversi このに載っているプログラム例はJavaで書かれているので、要はJavaをHaskellで書きなおすという作業をしたような感じになりました。 前になんか勘違いしていた話 JavaとHaskellといえば、前に社内で"Types and Programming La

    JavaコードをHaskellで書きなおすのに手こずった話 - yunomuのブログ
  • 1