2026-08-20
Sign.hs
sign :: Int -> String
sign n
| n > 0 = "positive"
| n < 0 = "negative"
このコードは、ある特定の入力に対して実行時にクラッシュします。それはどの入力で、どのように直せばよいでしょうか?
答え
sign 0は非網羅的なガード(non-exhaustive guards)エラーでクラッシュします — nが0のとき、どちらのガードにも一致しません。| otherwise = "zero"という形ですべてを受け止める節を追加してください。