Работа с различными парадигмами имеет одну и ту же цель: решение проблемы наиболее эффективным способом,экономия ненужных затрат времени, усилий и денег, поэтому не сосредотачивайтесь только на одной парадигме программирования, будь то >процедурные, объектно-ориентированные или функциональные, вы легко можете просмотреть все три, чтобы включить их в свой набор инструментов, как профессиональный разработчик программного обеспечения, которым вы хотите быть.
Это краткое введение в императивное и декларативное программирование, в котором делается попытка с помощью нескольких слов и очень простых примеров показать существенное различие обеих парадигм для дальнейшего изучения и погружения.
Испанская версия
Императив
В начале любого пути обучения в области разработки программного обеспечения используется процедурное программирование, которое представляет собой не что иное, как императивное программирование; алгоритмы, которые определяют действия, которые программа должна выполнить для достижения ожидаемого результата, что-то вроде рецепта приготовления пищи.
Рецепты похожи на компьютерные программы. Существуют правила, шаги, которым нужно следовать, а также рекомендации, которые сообщают нам, когда рецепт начинается и заканчивается, чтобы получить окончательный результат.
Автор: Ричард Столлман
То есть в императивном программировании мы должны определить поток, которому будут следовать данные через структуры, такие как условные операторы, циклы и функции.
Эта парадигма больше ориентирована на машину Тьюринга Алана Тьюринга, в которой мы заявляем, как мы хотим получить результат. Чтобы прояснить это немного больше, мы увидим пример.
Пример процедурного программирования на Python
customers = {'victoria': 100, 'regina': 120, 'alan': 60} def update_customer_credit(customer_list): """ update customer's credit """ customer = customers['alan'] if 'alan' in customer_list: while customer >= 10: customer -= 10 print(customer) update_customer_credit(customers)
Мы объявляем словарь ключ-значение под названием customers с 3 элементами.
Функция update_customer_credit запрашивает у нас список клиентов.
Внутри этой функции с помощью условного выражения мы фиксируем интересующий нас элемент.
С помощью цикла мы вычитаем кредит, который есть у клиента, пока не достигнем нуля.
Все эти шаги имеют наиболее распространенные в программировании структуры, переменные, функции, циклы и условные операторы, с помощью которых мы можем развиваться императивно и процедурно, то есть отдавая команды через язык для достижения результата, руководствуясь процедурами. .
Здесь мы видим ожидаемый результат.
50 40 30 20 10 0
декларативный
В этой парадигме мы определяем логику, но не управление потоком с помощью структур, которые мы уже рассмотрели, как в предыдущем примере.
Композиция более сложных структур, таких как чистые функции или объекты, используется для начала с декларативным программированием, поскольку в этих структурах мы абстрагируем императивные компоненты, здесь ожидается только ответ, а не то, каким образом он построено.
Этот тип программирования основан на лямбда-исчислении Алонзо Чёрча, которое предназначено больше для человека, чем для машины, декларируя, что программист хочет сделать, а не как машина должна это делать.
Пример лямбда-выражений Python
Python – это мультипарадигмальный язык, с помощью которого можно использовать императивное программирование, например объектно-ориентированное, а также декларативное программирование, например функциональную парадигму.
# addition of two numbers addition = lambda x, y: x + y print(addition(10, 10)) # 20 # abstraction of two numbers abstraction = lambda x, y: x - y print(abstraction(10, 5)) # 5
Этот код определяет лямбда-функцию, называемую «сложением», которая принимает два аргумента, x и y. Затем он выполняет операцию сложения x и y вместе и возвращает результат.
Без императивного программирования не может быть декларативного программирования.
Отказ от ответственности
Примите этот код таким, какой он есть, примером для объяснения декларативного и императивного программирования.
В большинстве современных языков есть выражения, взятые непосредственно из функциональной декларативной парадигмы, например, сопоставить, отфильтровать, найти и уменьшить, которые являются наиболее часто используемыми функциями, которые мы увидим в другой статье.
Если вам нравится мой контент, рассмотрите возможность подписки и поддержки моей работы, поставив лайк, прокомментировав или поделившись этой или любой другой статьей, которую я написал.