Я пытаюсь проанализировать запись из списков списков (продолжение с этот вопрос ).
Вот моя запись
data Record = Record Text Text Text Text Text Text Text Text Text deriving (Show, Generic)
Этот синтаксис работает:
parseRecords :: [[Text]] -> [Record]
parseRecords = map (\[f1,f2,f3,f4,f5,f6,f7,f8,f9,_] -> Record f1 f2 f3 f4 f5 f6 f7 f8 f9)
Этот синтаксис проверяет, но у меня зафиксировано 10 параметров.Я предпочел бы иметь больше, чем это, и игнорировать те, которые больше, сопоставляя их с шаблоном в список [_], который я не буду передавать.Я попробовал следующее:
parseRecords = map (\f1:f2:f3:f4:f5:f6:f7:f8:f9:[_] -> Record f1 f2 f3 f4 f5 f6 f7 f8 f9)
Это, однако, не с:
Parse error (line 27, column 24): parse error on input ‘:’
Я мог бы поклясться, что видел подобный тип сопоставления с образцом, используемый в лямбдах раньше.Что мне не хватает, что мои операторы двоеточия являются ошибкой разбора?Трудно допросить, что происходит не так.
Спасибо!