私はタプル(私の場合、タプル内の3つのInt値)のリストを取る関数を記述しようとしていて、リストのいずれかのタプルの最大合計を返します。ハスケルのタプルのリストとパターンマッチングをどのように使いますか?
これは、そうすることで私の現在の試みです:
type Triples = [(Int, Int, Int)]
maxTotal :: Triples -> Int
maxTotal [] = error "ERROR: NO TUPLES"
maxTotal ((x,y,z):rest)
| sumTriple x y z > maxTotal rest = sumTriple x y z
| otherwise = maxTotal rest
sumTriple :: Int -> Int -> Int -> Int
sumTriple x y z = x + y + z
をしかし、私はこの関数を実行するたびに、私は私のエラー出力で終わる... Haskellは空としてタプルの私の入力リストを扱っていますリストに入っているか、私の「そうでなければ」ガードでリストの終わりまでサイクリングして、エラーに達していますか?
'sumTotal'の型を'(Int、Int、Int) - > Int'に変更すると、 'maxTotal = maximum。 fmap sumTriple'である。 – chepner