タグ

Testingとhaskellに関するclavierのブックマーク (4)

  • 『プログラミング Haskell』『すごい Haskell 楽しく学ぼう!』の次に何を読む?

    邦書の二大 Haskell 学習書を読み終えたら次は何を読めば良いのか? に対する偉大な先達のご意見。 途中から流れが Haskell の doctest の話題になっています。

    『プログラミング Haskell』『すごい Haskell 楽しく学ぼう!』の次に何を読む?
  • GHC でスタックトレース - あどけない話

    これまで GHC では、スタックトレースを取ることが有効なデバッグ方法ではなかった。 なぜなら遅延評価では、(再帰であってもなくても)末尾呼び出しは単なるジャンプになるから、スタックを使わないのである。スタックに戻る場所を積むのは、case と of の中で評価される式だけだ。(つまり、ここは正格に評価される。) この問題を解決するために GHC 7.4.2 から、わざわざスタックにログを残して、スタックトレースが取れるようになった。すなわち、最新の Haskell Platform をインストールしていれば、この機能を使えるということだ。 例として、以下のプログラムを考えよう。 module Main where main :: IO () main = print $ foo 3 + 1 foo :: Int -> Int foo x = x * 2 + bar x bar :: In

    GHC でスタックトレース - あどけない話
  • HaskellのUnitTest、HUnitについて学ぶ - エンジニアのソフトウェア的愛情

    恥ずかしながら。ごく最近までHaskellにUnitTestのライブラリがあるのを知りませんでした。恥ずかしい。 調べてみたところ、思ったよりも簡単にUnitTestを書けることがわかったので、ちょっとまとめてみました。 間違いありましたらご指摘いただけるとたいへんありがたいです。 詳細についてはリファレンスをあたってみてください。 Test.HUnit Test.HUnit.Base Test.HUnit.Text HUnitのインポート HUnitを使うにはTest.HUnitモジュールをインポートします。 import Test.HUnit GHCiで利用するばあい。 $ ghci Prelude> :m Test.HUnit Prelude Test.HUnit> アサーション アサーションは基的に、常に失敗、Falseのとき失敗、不一致のとき失敗、の3種類です。それぞれ通常の関

    HaskellのUnitTest、HUnitについて学ぶ - エンジニアのソフトウェア的愛情
  • HaskellとテストとBDD - あどけない話

    Haskellでの BDD を実践するとどうなるかを考えるためのメモ。 型 豊かなデータ型とセクシーな型システムを持つ Haskell では、型が以下のような意味を持つ。 仕様 保守性の向上 簡単なドキュメント 設計図 BDD では、テストの用語ではなく設計の用語を使ってテストを記述する。だから Haskell で、まず型を書く習慣があれば、ある意味 BDD を実践していると言える。この感覚は、他の言語のプログラマには分からないかもしれない。 fromList :: Ord a => [a] -> Set a fromList = undefined このコードはコンパイルを通過するので、型に関する誤りがないことを確かめられる。 僕はへなちょこなので、型を先に書くこともあれば、後から書くこともある。 単純なコードはさっさと実装したい 型は GHC に推測させて、ghc-mod で自動挿入す

    HaskellとテストとBDD - あどけない話
  • 1