Pemrograman Reaktif / Relasional Fungsional - Apakah ada perbedaan?

12

Saya telah menggunakan Reactive Cocoa (oleh GitHub), API Pemrograman Reaktif Fungsional untuk digunakan dengan perpustakaan Cocoa untuk sementara waktu sekarang, tetapi baru saja membaca "Out of the Tar Pit" , makalah yang seharusnya menyajikan konsep di baliknya, dan saya agak bingung.

Makalah ini menyajikan (seperti yang saya mengerti) Pemrograman Relasional Fungsional , di mana hubungan antara data dibuat dengan kondisi yang harus ditegakkan oleh sistem FRP untuk mengurangi jumlah logika 'tidak disengaja' dan keadaan yang dibutuhkan.

Pertanyaan saya adalah, apakah kedua konsep ini - FR (eactive) P dan FR (elational) P pada dasarnya adalah hal yang sama (dengan yang pertama hanya merupakan implementasi dari yang terakhir) atau adakah perbedaan inti antara keduanya? Sayangnya saat ini pengetahuan saya tentang daerah tersebut tidak cukup baik bagi saya untuk membedakan mereka.

Jika ada perbedaan, tampaknya ada hubungannya dengan, seperti namanya, bereaksi terhadap perubahan data. Tentu saja, Kakao Reaktif (dan Rx dalam C #) memiliki konsep membuat sinyal yang dipicu oleh perubahan data, dan dapat digunakan untuk terus mengubah nilai dari waktu ke waktu.

Apakah ini bedanya? Jika tidak, apa itu?

(Maafkan penandaan yang buruk, saya tidak dapat menemukan tag yang relevan dan belum dapat membuatnya - perbarui tag ke sesuatu yang lebih tepat jika Anda bisa.)

danpalmer
sumber
2
"Out of the Tar Pit" tidak menyajikan konsep di balik pemrograman reaktif fungsional - itu hanya bacaan yang baik untuk memahami mengapa keadaan berbahaya. Sebagian besar berlaku untuk FP murni, FRelP, dan FReaP.
Justin Spahr-Summers

Jawaban:

5

Reaksi dapat mendorong perubahan tanpa melibatkan model relasional. C = A + B Perubahan A dan / atau B dan C akan bereaksi terhadap perubahan (tetapi bisa berakhir dengan nilai yang sama). Pada p. 42

Pendekatan pemrograman relasional fungsional (FRP16) namanya berasal dari fakta bahwa komponen penting dari sistem (logika dan keadaan esensial) didasarkan pada pemrograman fungsional dan model relasional (lihat Gambar 2).

catatan kaki 16

Tidak menjadi bingung dengan pemrograman reaktif fungsional [EH97] yang memang memiliki beberapa kesamaan dengan pendekatan ini, tetapi tidak memiliki fokus intrinsik pada hubungan atau model relasional

JeffO
sumber
Ah saya mengerti. Tampaknya ada banyak persimpangan dengan kerangka kerja reaktif yang saya sebutkan dan Pemrograman Relasional Fungsional, tentu ada beberapa konsep yang hadir, tetapi mereka juga menggambar konsep sinyal mereka dari Perilaku dan Peristiwa kedua makalah itu.
danpalmer
3
Persimpangan sebagian besar pada tingkat FP murni. Paradigma relasional dan reaktif tidak memiliki banyak kesamaan.
Justin Spahr-Summers