おはようございます、私はhaskellを初めて使っています。私は、文字列のUnicode値を読み込んでリストに格納し、整数を合計するリストを要約しようとしています。「Exception:Prelude.head:empty list」を避けるには? - Haskell
getLetterUnicodeValue :: Char -> Int
getLetterUnicodeValue l = (ord l) - 64
unicodeValueList :: String -> [Int]
unicodeValueList x = getLetterUnicodeValue (head x) : unicodeValueList (tail x)
total :: [Int] -> Int
total [] = 0
total x = (head x) + (total (tail x))
文字列が最後の文字になり、合計機能が正常に実行されないと、空のリストのエラーが発生しました。終わりになると機能を停止する方法はありますか?unicodeValueList
*** Exception: Prelude.head: empty list
はい、あります。あなたは既に 'total' *のためにそれを行っています。... – immibis