Здравствуйте, gyraboo, Вы писали:
G>То-бишь императивный стиль мышления более близок гуманитариям? Это имеет смысл. Гуманитарии часто не любят/не могут вникать в щепетильный пошаговый процесс, им важен результат, и декларативный стиль как раз об этом — объявить результат, работать с результатом, результат на результате сидит и результатом погоняет (promise-ад), максимально скрыв сам пошаговый императивный способ получения результата. В идеале в функциональной программе вообще не должно быть ни слова про шаги получения результата.
Ты хотел сказать "функциональный стиль мышления"? За всех говорить не будем. Функциональное программирование нравится очень разным людям.
Ты близко описал то, как в одном моем методе задаются имитационные модели для систем массового обслуживания. Там действительно просто описываешь декларативно, как ведет себя система. Ну, а то, что изменяемое состояние скрыто внутри вычислений (продолжений под видом монад), — это уже деталь реализации. Не вижу в этом ничего плохого.
Кстати, эта штука работает даже в случае распределенной имитации (на кластере, или на многоядерном компьютере) с откатами вычислений. Именно такая декларативность, скрывающая работу с изменяемым состоянием, и позволяет гарантировать воспроизводимость вычислений (с точностью до нестабильной сортировки событий) даже независимо от того, какой будет порядок двоичных пакетов данных между разными логическими процессами (узлами имитационной модели).
Без функционального программирования у меня бы не получилось такого результата