В этой статье мы разберём что такое программирование на функциональном уровне, очень интересная статья.
Также посмотрите статью: «Что такое система контроля версий«, тоже всем рекомендую.
Программирование на функциональном уровне:
Программирование на функциональном уровне относится к одной из двух противоположных парадигм, определенных Джоном Бэкусом в его работе над программами, которые он рассматривает как математические объекты. В 1977 году Бэкус представил причины, по которым он считал необходимым изменить философию создания языков программирования.
Языки программирования кажутся не лучшими. Каждый дополнительный язык добавляет, с небольшими изменениями, все возможности своих предшественников, а также некоторые другие. Каждый новый язык может похвастаться новыми и современными функциями, но факт в том, что лишь несколько языков делают программирование достаточно дешевым или способным оправдать затраты на разработку и обучение.
Он разработал FP — первый язык программирования, специально поддерживающий программирование на уровне функций.
Программа функционального уровня не имеет переменных, потому что программные переменные, которые необходимы в определениях уровня значений, не нужны на функциональном уровне.
В стиле программирования на уровне функций программа строится непосредственно из программ, которые мы получили в начале.
Объединив их с помощью операций, создающих программу или функцию. В отличие от подхода на уровне значений, который вызывает программы к значениям, чтобы создать последовательность значений, которая приводит к желаемому результату.
Подход на функциональном уровне применяет операции, которые создают программу, к данным программам, чтобы создать последовательность программ, которая приводит к желаемому результату.
Отличие от функционального программирования:
Бэкус изучил и опубликовал свой стиль программирования на функциональном уровне, его сообщение было в основном неправильно понято, поэтому он поддерживал традиционные функциональные языки (такие как Lisp или Haskell) вместо своего собственного преемника FP и FL.
Бэкус назвал функциональное программирование функционально ориентированным языком; его программирование на функциональном уровне является частично принудительным типом функционально-ориентированного программирования.
Ключевое отличие от Лиспа и других функциональных языков заключается в том, что язык Бэкуса имеет следующие типы иерархии:
- Атомы;
- Функции, которые делают атомы атомами;
- Функции более высокого порядка (которые он называет «функциональными формами»), которые принимают одну или две функции в функцию;
И единственный способ генерировать новые функции — использовать неизменяемые функциональные формы: вы не можете создавать свои собственные функциональные формы (по крайней мере, не в FP; это в FFP (формат FP))
Эти ограничения означают, что функции в FP являются модулями (генерируемыми встроенными функциями) через алгебру до функциональных форм, и поэтому их можно проследить алгебраически. Например, основной вопрос о равенстве двух функций эквивалентен проблеме остановки и неразрешим, но равенство двух функций в FP — это только равенство в алгебре, поэтому это проще.
Даже сегодня многие пользователи языков лямбда-стиля неверно интерпретируют подход Бэкуса на функциональном уровне как ограничительный вариант коммуникации в лямбда-стиле, который де-факто является стилем ценностного уровня.
Бэкус соглашался с ними в отношении слова «ограниченный», утверждая, что оно точно адаптировано к такому ограничению, что хорошо сформированное математическое место могло бы выделиться.
Вывод:
Думаю вы поняли что такое программирование на функциональном уровне и вам было интересно.
Источник: https://en.wikipedia.org/wiki/Function-level_programming;