Разница между Реактивным и Функционально-Реактивным программированием - PullRequest
65 голосов
/ 22 марта 2011

Недавно я проводил некоторые исследования в области реактивного программирования, и мне трудно найти хорошее описание разницы между Reactive и Functional -Reactive.

Просто ли реактивное программирование реализовано с использованием функциональных методов / парадигм, а не с использованием декларативных или ОО-парадигм?

Ответы [ 2 ]

65 голосов
/ 22 марта 2011

Функциональное реактивное программирование (FRP) - это особая модель программирования с определенной семантикой.(На самом деле, есть два варианта, которые иногда называют «классическим FRP» и «стрелкой FRP».) В я дал краткое изложение ответа «Что такое (функциональное) реактивное программирование?» .Как я уже говорил, двумя ключевыми свойствами для меня всегда были (а) точное и простое обозначение и (б) непрерывное время.Сожалею, что эту модель стали называть «функционально-реактивным программированием» по нескольким причинам:

  • В этом названии отсутствует «время», а время для меня является центральным.
  • Термин «функциональный» имеет так мало конкретного / ясного значения.Я очень предпочитаю предложенную Петром Ландином замену «денотатив».(См. Цитаты и ссылки в этом комментарии к блогу .)
  • Людям легко неправильно думать, что они знают, что означает этот термин, потому что они знают значения (более или менее) каждого изтри слова.

Для большей наглядности и точности я предпочитаю термин «денотативное программирование с непрерывным временем» (предложенный Джейком Макартуром в беседе некоторое время назад), а не «функционально-реактивное программирование».

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

13 голосов
/ 08 декабря 2017

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

Определение обоих дает более четкое различие между двумя.

...