開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Haskell (プログラミング言語)
- Haskell Platform(ghci)(処理系)
関数プログラミング入門(Richard Bird (著)、山下伸夫 (翻訳)、オーム社)の第2章(単純なデータ型)、2.6(型シノニム)、練習問題2.6.1、2.6.2を取り組んでみる。
練習問題2.6.1、2.6.2
コード(Emacs)
-- 2.6.1 type Distance = Double -- 相当性検査演算(==)を定義出来ない。((==)は Double の相当性演算) -- 2.6.2 data Jane = MkJane Int newtype Dick = MkDick Int f :: Jane -> Bool f (MkJane n) = True g :: Dick -> Bool g (MkDick n) = True -- n が undefined の場合、MkDick は正格な構成子なので 関数gはエラーになる。
入出力結果(Terminal, ghci)
$ ghci sample6.hs GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help [1 of 1] Compiling Main ( sample6.hs, interpreted ) Ok, modules loaded: Main. *Main> f undefined *** Exception: Prelude.undefined CallStack (from HasCallStack): error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err undefined, called at <interactive>:1:3 in interactive:Ghci1 *Main> g undefined True *Main> :q Leaving GHCi. $
0 コメント:
コメントを投稿