5 языков функционального программирования, которые вы должны знать

1 min


Если вы потратите какое-то время на изучение тенденций программирования в Интернете, вы услышите о функциональном программировании. Термин встречается довольно часто, но что это значит?

Даже если вы знаете, что такое функциональное программирование, вам может быть неясно, какие языки лучше всего подходят для него. В конце концов, не все языки программирования созданы равными. Хотя вы можете применять парадигмы функционального программирования на многих языках, все же есть некоторые, где вы будете чувствовать себя намного комфортнее.

Что такое функциональное программирование?

Если у вас есть опыт в математике, у вас есть преимущество в функциональном программировании. Это связано с тем, что парадигма функционального программирования рассматривает вычисления как математические функции. Если у вас нет математического образования, это может привести вас в замешательство.

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

Существует сходство с философией Unix, что каждая программа должна делать что-то хорошо. Функция не должна затрагивать различные части вашей программы. Вместо этого он должен взять свой ввод и дать вам вывод.

В идеале функции должны быть по возможности чистыми в функциональном программировании. Это означает, что при одинаковом входном сигнале выходной сигнал функции всегда будет оставаться неизменным.

Функциональное и объектно-ориентированное программирование

Это драматический отход от чего-то вроде объектно-ориентированного программирования. В объектно-ориентированном программировании у вас часто есть базовый объект с различными методами, предназначенными для изменения данных или состояния, которые являются частью этого объекта. Метод может даже изменить данные или состояние, если это не указано явно.

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

1. JavaScript

Логотип JavaScript

Некоторые языки программирования допускают функциональное программирование, в то время как другие либо поощряют, либо даже применяют его. JavaScript попадает в первую категорию. Хотя вы можете использовать в языке парадигмы функционального программирования, вы также можете легко использовать объектно-ориентированный подход.

Тем не менее, существует множество парадигм функционального программирования, встроенных в JavaScript. Взять, к примеру, функции высшего порядка. Это функции, которые могут принимать другие функции в качестве аргументов.

JavaScript имеет несколько функций, которые работают с массивами, такими как карта(), уменьшения (), фильтр()и другие, все из которых являются функциями более высокого порядка. Это позволяет объединять их в цепочки, чтобы быстро выполнять различные операции с массивом.

В ранних версиях JavaScript были некоторые проблемы с изменчивостью, но в более новых версиях стандарта ECMAScript есть исправления. Вместо всеобъемлющего вар Ключевое слово для определения переменных, теперь у вас есть Const а также позволять, Первый позволяет вам определять константы, как следует из названия. Второй, позволять, ограничивает область действия переменной функцией, в которой она объявлена.

2. Питон

Логотип питона

Как и JavaScript, Python является обобщенным языком, с которым вы можете использовать любое количество парадигм программирования. У Python могут быть свои недостатки

4 причины, почему Python не является языком программирования для вас



4 причины, почему Python не является языком программирования для вас
Язык программирования Python чрезвычайно популярен, но вот несколько причин, по которым вы можете избежать Python.
Прочитайте больше

, но функциональное программирование не является одним из них. В официальной документации по Python есть даже введение в функциональное программирование.

Для начала вы найдете много карта(), фильтр(), уменьшения ()и аналогичные функции, упомянутые выше, встроены. Как и в JavaScript, это функции высшего порядка, так как они принимают другие функции в качестве аргументов. В Python функциональное программирование имеет преимущество в виде лямбда ключевое слово.

Вы можете использовать лямбда-выражения несколькими способами. Одним из способов его использования является сокращение для простых функций. При назначении переменной вы можете вызывать лямбда-выражения точно так же, как и в стандартной функции Python. Настоящее преимущество лямбда-выражений возникает, когда вы используете их в качестве анонимных функций.

В этом списке также работают анонимные функции на JavaScript и других языках. Они особенно полезны при использовании с функциями более высокого порядка, поскольку вы можете определить их на месте. Без анонимных функций вы должны были бы заранее определить даже простые добавления как специальные функции.

3. Clojure

Clojure логотип языка программирования

В отличие от JavaScript и Python, Clojure не может быть нарицательным, даже среди программистов. Если вы не знакомы, Clojure – это диалект языка программирования Lisp, который датируется концом 1950-х годов. Это приносит с собой очень специфический способ делать вещи, которые оказываются идеальными для функционального программирования.

Как и другие диалекты Lisp, Clojure обрабатывает код как данные. Это означает, что код может эффективно изменить себя. В отличие от других диалектов Lisp, Clojure работает на платформе Java и компилируется в байт-код JVM. Это означает, что он может работать с библиотеками Java, независимо от того, были ли они написаны на Clojure или нет.

В отличие от предыдущих языков в этом списке, Clojure – это функциональный язык программирования с нуля. Это означает, что он защищает неизменность везде, где это возможно, особенно в структурах данных.

Clojure не ожидает, что все программы будут математически «доказуемы», но рекомендует использовать чистые функции везде, где это возможно.

4. Вяз

Вяз логотип языка программирования

Elm – один из самых новых языков в этом списке. Это чисто функциональный язык, изначально разработанный Эваном Чаплицким в 2012 году. Этот язык приобрел популярность среди веб-разработчиков, особенно для создания пользовательских интерфейсов.

В отличие от каждой предыдущей записи в этом списке, Elm использует статическую проверку типов. Это помогает избежать исключений во время выполнения, поскольку вместо этого ошибки обнаруживаются во время компиляции. Это означает меньше видимых ошибок для пользователей, что является основным плюсом.

Компилятор Elm предназначен для HTML, CSS и JavaScript. Точно так же, как вы можете использовать Clojure для написания программ, работающих на Java, вы можете создавать приложения, использующие библиотеки JavaScript в Elm.

Одно из основных различий между языком вяз и другими языками здесь состоит в том, что вы не найдете общего фильтр(), карта()и аналогичные функции. Вместо этого они определяются типом данных, как List.map или же Dict.map,

5. Хаскелл

Логотип языка программирования Haskell

Haskell – это другой статически типизированный, чисто функциональный язык. В отличие от Вяза, Хаскелл был здесь некоторое время. Первая версия языка была разработана в 1990 году. Последним стандартом является Haskell 2010, а следующая версия запланирована на 2020 год.

Как мы уже исследовали, чисто функциональная природа Haskell означает, что по своей природе функции не должны иметь побочных эффектов. Это делает его подходящим для решения реальных проблем, несмотря на корни функционального программирования в академических кругах.

Несмотря на то, что Haskell не пользуется популярностью среди мейнстрима, он принимал участие в некоторых широко используемых проектах. Оконный менеджер Xmonad полностью написан на Haskell. Pandoc, который конвертирует различные типы разметки в другие форматы и из них, также использует язык.

Стандарт карта(), фильтр(), уменьшения ()и другие функции более высокого порядка, которые позволят вам перенести концепции из JavaScript или Python в Haskell. Если вы хотите узнать больше о языке, «Learn You a Haskell for Great Good» является популярной отправной точкой.

Вы новичок в программировании?

Некоторые из приведенных выше терминов и языков могут показаться эзотерическими, если вы еще не являетесь опытным программистом. Это хорошо, потому что знание того, чего вы не знаете, является одним из первых шагов на пути к лучшему обучению.

Некоторые из перечисленных выше языков лучше для начинающих, чем другие. Взгляните на наш список лучших языков программирования для начинающих

6 самых простых языков программирования для начинающих



6 самых простых языков программирования для начинающих
Обучение программированию – это поиск правильного языка так же, как и процесс назидания. Вот шесть самых простых языков программирования для начинающих.
Прочитайте больше

, Вы заметите, что между этими двумя списками есть некоторое пересечение.

Узнайте больше о: функциональном программировании, JavaScript, Python.

11 лучших дистрибутивов Linux для программистов


0 Comments

Добавить комментарий