Рубрики
Без рубрики

Функциональные программирования модных слов

Краткое определение относительно ключевых слов функциональных программиров. Теги с функционалом, JavaScript, референциальным характеристиком, функцией функции.

Функциональные программирования Keynotes и вынос

Парадигма функциональной программирования интегрирует несколько новых слов на наш словарный запас для кодирования, просто чтобы поставить в перспективу: говоря, что мы могли бы быть честнымбитым, если мы будем использовать функциональное программирование в правильном пути, то же самое, что говорят, что мы могли бы получить честь (или награды » ) Если мы используем функциональное программирование правильно.

HonorificalitudInitatibus сможет получить честь (или награды)

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

Buzzword: множественное число существительное: Buzzwords Слово или фраза, часто пункт жаргона, который модно в определенное время или в определенном контексте.

Давайте посмотрим на несколько определений, которые мы найдем в функциональном программировании:

Buzzwords:

Ссылочная прозрачность:

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

Декларативный:

FP – это декларативная парадигма стиль разработки программного обеспечения, как и другие: императивное программирование или объектно-ориентированное программирование, это Сохраняет «функции» и «данные» отдельные Отказ Ни один двусторонний связывание данных не допускается.

Парадигма:

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

Абстракции:

Скрыть детали (абстрактные нам детали) и дайте нам возможность говорить о проблемах на более высоком (более абстрактном) уровне.

Функциональная композиция:

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

Первый класс:

Функции в JS – это «первоклассные» объекты, это означает, что что-то имеет значение:

const name = "Leo";

Первоклассные функции:

Это означает, что вы можете хранить функции в переменной:

const subName = function(a,b){ return name + a + b };

Функция более высокого порядка:

Функция более высокого порядка – это функция, которая может принять другую функцию в качестве аргумента или возвращает функцию в результате. В JS функции являются «первыми классами» и «функциями более высокого порядка».

Побочные эффекты:

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

  • Изменение любой внешней свойства переменной или объекта (глобальная переменная или переменная в родительской функциональной цепочке области)
  • Вход в консоль
  • Писать на экран
  • Писать в файл
  • Создание сетевых запросов
  • Запуск любого внешнего процесса
  • Вызов любых других функций с побочными эффектами
  • В основном выполнять IO
  • Изменение дерева Дома
  • Использование даты ()

Чистая функция:

  • Учитывая тот же вход, всегда возвращайте тот же выход (чистый)
  • Не имеет побочных эффектов (неизменных) Это означает, что тело функции не может зависеть от переменных вне его аргументов, если они не являются постоянными для срока службы программы.

Неизмерность:

Несомненным объектом является объект, который не может быть изменен после его создания. И наоборот, воспоминаемый объект – это любой объект, который может быть изменен после его создания.

Рекурсия:

Рекурсивная функция – это функция, которая вполне просто называет себя. Рекурсия (используйте его вместо или пока циклов)

Общий штат

FP избегает общего состояния, а не полагаться на неизменную структуру данных и чистые расчеты. Общее состояние – любая переменная, объект или пространство памяти, которое существует в общем объеме, или в качестве свойства, передаваемого объекта между областями.

Каррис:

Carrying – это когда функция не принимает все свои аргументы всех аванс. Вместо этого возьмите первый аргумент, а затем функция возвращает другую функцию, которая использовала второй аргумент, который в свою очередь, возвращает третью функцию, которая использовала третий аргумент … и так далее!

Воспоминания:

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

Функторы

Функтор просто то, что может быть.

Монады:

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

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

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

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

RFP не FP. Реактивное программирование – это парадигма, где «async Data Streams» можно использовать практически везде. Все это поток. RFP – это парадигма для создания целых приложений без ничего, кроме потоков ценностей со временем. Так же, как и в функциональном программировании, мы хотим избежать любого вида мультипликационного состояния и программы, составив чистые функции.

Императивное программирование:

Императивное программирование – это стиль программирования, где программисты говорят компьютер, что делать, рассказывая об этом «Как» сделать это. Императивное программирование приводит к большому количеству конструкций, которые мы используем каждый день: контрольный поток (если-то заявления и петли и петли), арифметические операторы (+, -, *,/), операторы сравнения (===,>, < И т. Д.) И логические операторы (&&, ||,!).

Императив против функционального программирования:

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

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

Декларативный/Функциональный против императив/процедур

  • Функциональное программирование: представляет собой декларативную парадигму, что означает, что логика программы выражается без явного описания управления потоком: «Что его необходимо сделать».
  • Императивные программы: потратьте линии кода, описывающие определенные шаги, используемые для достижения желаемых результатов, контроль потока: «Как делать вещи».

Оптика:

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

Отражение:

FP не имеет отражения. Отражение – это способность кода для изучения и модификации структуры и поведения (в частности, значения, метаданные, свойства и функции) программы во время выполнения, поэтому она фактически управляет или вызывает атрибуты объекта или функции, такие как Eval ( ) делает в JS.

Чистые объекты:

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

Функциональное программирование:

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

Функциональное программирование длительного определения:

«Функциональное программирование – это« декларативная »« парадигма »строительства программного обеспечения« составлением «чистыми функциями», избегая «общего состояния», «смежные данные» и «побочные эффекты». Размещение основного акцента на использование функций для придумывания результатом; Цель, скорее, состоит в том, чтобы «абстрактные контрольные потоки и операции по данным с этими функциями и угрожают их как строительные блоки», полагаясь на «Функция первого класса JS» и «более высоким порядком» для улучшения модульности, предсказуемости и воспроизведения. ваш код.

Практическое определение ФП:

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

Функциональные программированные модные слова:

https://github.com/leolanese/Functional-Programming-buzzwords

[ Следующая] Функциональные истории по программированию:

* Функциональное программирование из RiveDJS и угловая точка зрения * Создание блока-тестирования веселья снова с функциональным программированием

Спасибо!

{«Loo Lanese», «здание, вдохновляющие адаптивные реактивные решения», «Лондон, Великобритания»}
Портфолио http://www.leolanese.com.
Twitter: Twitter.com/leolaneseltd.
Вопросы/Предложение/Рекомендация? developer@leolanese.com.
Dev.to: www.dev.to/leolanese
Блог: Leolanese.com/blog.

Оригинал: “https://dev.to/leolanese/functional-programming-buzzwords-36c1”