10000hの技術メモ

この先生きのこるための勉強内容&時間記録

Haskell入門 9

Haskell入門 関数型プログラミング言語の基礎と実践

Haskell入門 関数型プログラミング言語の基礎と実践

まとまった時間がとれてないのでとばしとばし

9.1 開発の準備

つくるものは、jqコマンド風のもの。

$ stack new hjq

でプロジェクトを作成。

小さいからといってappディレクトリに置いていくのではなく、基本はsrcに寄せる。

src内のモジュール構成を最初のうちに考えておくのが重要。

HUnit

haskell用のユニットテストフレームワーク

今回はテストファーストで。

P316でstack testしたところでエラー。

rrcs-172-254-99-29:hjq yoshikiito$ stack test
Unable to parse cabal file /Users/yoshikiito/workspace/hjq/hjq.cabal: NoParse "build-depends" 38

なぜ。hjq.cabalはサンプルの通りに書いたはずでは・・・

とりあえず、test-suite hjq-testの部分を公式のサンプルからコピペして再度stack testを実行。

参照:サポートページ:Haskell入門 関数型プログラミング言語の基礎と実践:|技術評論社

それでも失敗。

rrcs-172-254-99-29:hjq yoshikiito$ stack test
hjq-0.1.0.0: build (lib + exe + test)
Preprocessing library hjq-0.1.0.0...
Preprocessing executable 'hjq-exe' for hjq-0.1.0.0...
Preprocessing test suite 'hjq-test' for hjq-0.1.0.0...
[1 of 1] Compiling Main             ( test/Spec.hs, .stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/hjq-test/hjq-test-tmp/Main.o )
             
/Users/yoshikiito/workspace/hjq/test/Spec.hs:10:23: error:
    Not in scope: type constructor or class ‘Test’
Progress: 1/2
--  While building package hjq-0.1.0.0 using:
      /Users/yoshikiito/.stack/setup-exe-cache/x86_64-osx/Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-work/dist/x86_64-osx/Cabal-1.24.2.0 build lib:hjq exe:hjq-exe test:hjq-test --ghc-options " -ddump-hi -ddump-to-file"
    Process exited with code: ExitFailure 1

このあとも調査をつづけたものの、わからん!

紙面にはコードの一部しかかかれていないので辛い(つらい

この本読み進めるの辛いような人はやるなってことなのかもしれない。