В чем разница между функциональным, структурированным и процедурным программированием?
Я прочитал несколько статей по всем темам, но я не совсем понимаю различия.
3 ответов
структурированное программирование-это старый термин, который, я думаю, будет охватывать функциональные, процедурные и многое другое. Это в основном означает использование явных структур потока управления, а не прыжки непосредственно от инструкции к инструкции.
или, как это было лихо описано:
функциональное программирование-это как описание вашей проблемы математик. Императивное Программирование как давать инструкции к идиот.
--- arcus, #scheme on Freenode
функциональное программирование использует функции как первоклассные элементы. Использование функций более высокого порядка (принятие и/или возврат функций); что приводит к мощным конструкциям и хорошо учитываемому коду. Некоторые люди также фокусируются на аспекте чистоты FP, который означает, что функции всегда должны возвращать один и тот же результат, учитывая один и тот же вход. Я считаю, что это два основных столпа FP. Я также вижу, что избегание побочных эффектов по существу абстрагируется немного от машины загрузки / хранения инструкции уровня.
структурированное Программирование восходит к статье Djikstra "Goto считается вредным". Это означает использование структур if/then/else/elif, do/while/until/for и т. д. вместо того, чтобы прибегать к Гото. Это по существу абстрагирование немного от инструкций уровня машины сравнения / ветви. Структурированное Программирование ортогонально как функциональному, так и процедурному программированию.
процедурное программирование, я считаю, относится к программированию с императивом "подпрограммы "(в отличие от чистых" функций"), состоящие обычно из серии" утверждений "(в отличие от" выражений"), оставляющих побочные эффекты.