Здравствуйте. Я пытаюсь написать простой двоичный парсер в Haskell, используя монаду runGetState.
Однако я столкнулся с проблемой разбора списка полей и застрял.
Проблема в том, что список полей может время от времени меняться, поэтому я хочу построить поля списка и затем прочитать их, используя карту.Фрагмент кода ниже:
readField field_type =
case (field_type) of
0 -> A1 <$> getWord8
132 -> A2 <$> getWord16be
134 -> A3 <$> getWord32be
parseData fields = return $ map (\x -> readField x) a
(fdata,input,no) <- return (runGetState (parseData [132,134,0]) input no)
Я попробовал вышеуказанное решение без удачи.Может кто-нибудь сказать мне, что я делаю не так?