[Haskell]
От: Алексей Мартынов Россия  
Дата: 13.03.07 13:49
Оценка:
Есть задача — расчетная программа на 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'а для меня, если возможно, то простые примеры или ссылки на них.

Алексей Мартынов.
Алексей Мартынов