Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

Для описательности и точности я предпочитаю термин "денотативное программирование непрерывного времени" (предположил Джейк МакАртур в разговоре некоторое время назад) над "функциональным реактивным программированием".

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

Ответ 2

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

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