Есть задача — расчетная программа на Haskell, которая параметры расчета должна получать из из файла следующего вида:
a=15
b=10
c=1 4 5.1
Как это наиболее понятно реализовать? Лучшее, что получилось — некий тип (String только для простоты примера):
data Parameters = Parameters (Maybe String) (Maybe String)
data ParameterName = ParamA
| ParamB
в паре с функцией, которая принимает его аргументом и, по мере чтения параметров, рекурсивно вызывает себя с обновленными данными. При достижении конца параметров запускается вычисление. Что-то в стиле:
readParameters p = do str <- getLine
case str of
('a':'=':xs) -> readParameters (setParameter p ParamA xs)
('b':'=':xs) -> readParameters (setParameter p ParamB xs)
"" -> evaluate p
-- Используется для изменения соответствующего параметра
setParameter :: Parameters -> ParameterName -> String -> Parameters
evaluate :: Parameters -> IO ()
Выглядит все довольно монструозненько
А посему хотелось бы получить советы как это лучше сделать, и, по причине новизны Haskell'а для меня, если возможно, то простые примеры или ссылки на них.
Алексей Мартынов.