Побочные эффекты и запись чтение в базу данных
От: salog  
Дата: 29.04.08 00:33
Оценка:
Функциональное программирование — это прежде всего отсутствие побочных эффектов, то есть когда "суперпозиция" функций дает один и тот же результат независимо от последовательности выполнения. Гарантией отсутствия побочного эффекта является невозможность функцией повлиять на внешние данные. Функция работает только со своими аргументами. Так пишется в книжках по функциональному программированию.

Тогда как быть с записью и чтение в/из базы данных? Данные базы данных — это и есть внешние данные. И если одан функция помимо того что делает что то с аргументами, но еще и читает кое какие данные из базы данных, а другая, помимо того что тоже что то делает с аргументами — пишет что то в базу данных, то это и будет давать те самые побочные эффекты.
Конечно смысла в этом никакого, результат непредсказуем, но, подключая модули к языкам типа Python или OCAML можно однако отклониться от генерального курса и опять попасть в пучину императивного стиля.
Я к тому что — тут опять человеческий фактор влазит.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.