Велогонка может быть представлена в виде списка велосипедистов.Каждый гонщик записывается со своим классом способностей (Высокий или Низкий), именем и временем в минутах, в которое он финишировал в каждой из своих гонок, в следующих типах:
data Ability = High | Low
data RiderResults = Rider Ability String [Int]
type Championship = [RiderResults]
Как решить totalTime:: RiderResults -> Int, который возвращает общее время, затраченное этим гонщиком во всех его гонках, включая штраф.Наездники с высокими способностями наказываются тем, что удваивают их фактическое время (например, общее время до штрафа, равное 70 минутам, становится 140 минутами).
Я сделал что-то вроде
totalTime :: RiderResults -> Int
totalTime (x:xs) = if x == Low then sum x*2
else x : totalTime xs
, но это неправильно.У меня есть практические вопросы к решению определения типов и объявлений данных в Haskell, и это один из них.Может кто-нибудь объяснить, пожалуйста, как подойти к таким вопросам?