計算機科学のブログ

Haskell - 実践Haskell - HaskellのエラーとEither型 - head関数と部分関数

入門Haskellプログラミング (Will Kurt(著)、株式会社クイープ(監修、翻訳)、翔泳社)の UNIT 7(実践Haskell)、LESSON 38(HaskellのエラーとEither型)、36.5(head関数、部分関数、エラー)、 クイックチェック 38-1の解答を求めてみる。

入出力結果(Terminal, Zsh)

% ghci
Loaded package environment from /Users/.../.ghc/aarch64-darwin-9.4.8/environments/default
GHCi, version 9.4.8: https://www.haskell.org/ghc/  :? for help
ghci> maximum []
*** Exception: Prelude.maximum: empty list
CallStack (from HasCallStack):
  error, called at libraries/base/GHC/List.hs:1646:3 in base:GHC.List
  errorEmptyList, called at libraries/base/GHC/List.hs:717:28 in base:GHC.List
  maximum, called at libraries/base/Data/Foldable.hs:745:15 in base:Data.Foldable
ghci> maximum [1]
1
ghci> succ (maxBound :: Int)
*** Exception: Prelude.Enum.succ{Int}: tried to take `succ' of maxBound
ghci> succ ((maxBound :: Int) - 1)
9223372036854775807
ghci> maxBound :: Int
9223372036854775807
ghci> sum []
0
ghci> sum [1 .. ]
^CInterrupted.
ghci> :q
Leaving GHCi.
%