Наиболее распространенный паттерн для использования базы данных в функциональном языке, учитывая желание не иметь побочных эффектов?

Я пытаюсь понять основную концепцию функциональных языков:

"Основная концепция функциональных языков заключается в том, что результат функции определяется ее входом и только ее входом. Побочных эффектов не существует!"

http://www.haskell.org/haskellwiki/Why_Haskell_matters#Functions_and_side-effects_in_functional_languages

Мой вопрос в том, что если функция производит изменения только в своем локальном окружении и возвращает результат, как она может взаимодействовать с базой данных или файловой системой? По определению, не будет ли это доступом к тому, что по сути является глобальной переменной или глобальным состоянием?

Какой наиболее распространенный шаблон используется для обхода или решения этой проблемы?

9
задан Matt Fenwick 7 December 2011 в 02:10
поделиться