ฟังก์ชั่นการโต้ตอบ / การเขียนโปรแกรมเชิงสัมพันธ์ - มีความแตกต่างหรือไม่?


12

ฉันใช้Reactive Cocoa (โดย GitHub) ซึ่งเป็นAPI การเขียนโปรแกรมเชิงโต้ตอบสำหรับใช้กับห้องสมุด Cocoa มาระยะหนึ่งแล้ว แต่เพิ่งอ่าน"Out of the Tar Pit"กระดาษที่นำเสนอแนวคิดเบื้องหลัง และฉันก็สับสนเล็กน้อย

บทความนำเสนอ (ตามที่ฉันเข้าใจ) การเขียนโปรแกรมเชิงสัมพันธ์เชิงหน้าที่ซึ่งความสัมพันธ์ระหว่างข้อมูลถูกสร้างขึ้นด้วยเงื่อนไขที่ควรมีการบังคับใช้โดยระบบ FRP เพื่อลดจำนวนตรรกะและสถานะ 'อุบัติเหตุ' ที่จำเป็น

คำถามของฉันคือแนวคิดทั้งสองนี้คือ FR (eactive) P และ FR (elational) P โดยพื้นฐานแล้วเป็นสิ่งเดียวกัน (โดยที่ก่อนหน้านี้เพิ่งจะนำไปใช้หลัง) หรือมีความแตกต่างที่สำคัญระหว่างทั้งสองหรือไม่ น่าเสียดายที่ในขณะนี้ความรู้เกี่ยวกับพื้นที่ของฉันไม่ดีพอสำหรับฉันที่จะแยกแยะพวกเขาให้มากพอ

หากมีความแตกต่างดูเหมือนว่าจะเป็นสิ่งที่ต้องทำด้วยชื่อแนะนำเพื่อตอบสนองต่อการเปลี่ยนแปลงของข้อมูล แน่นอนว่า Reactive Cocoa (และ Rx ใน C #) มีแนวคิดในการสร้างสัญญาณที่ถูกกระตุ้นจากการเปลี่ยนแปลงข้อมูลและสามารถใช้ในการปรับเปลี่ยนค่าอย่างต่อเนื่องตลอดเวลา

นี่คือความแตกต่าง? ถ้าไม่เป็นอะไร

(โปรดแก้ตัวการติดแท็กที่ไม่ดีฉันไม่สามารถหาแท็กที่เกี่ยวข้องและยังไม่สามารถสร้างได้ - โปรดอัปเดตแท็กเป็นสิ่งที่เหมาะสมกว่าถ้าคุณสามารถทำได้)


2
"Out the the Pit Pit" ไม่ได้นำเสนอแนวคิดที่อยู่เบื้องหลังการเขียนโปรแกรมปฏิกิริยาตอบสนอง - มันเป็นเพียงการอ่านที่ดีที่จะเข้าใจว่าทำไมรัฐเป็นอันตราย ส่วนใหญ่ใช้กับ FP บริสุทธิ์ FRelP และ FReaP
Justin Spahr-Summers

คำตอบ:


5

ปฏิกิริยาสามารถกระตุ้นการเปลี่ยนแปลงโดยไม่เกี่ยวข้องกับตัวแบบเชิงสัมพันธ์ C = A + B การเปลี่ยนแปลง A และ / หรือ B และ C จะตอบสนองต่อการเปลี่ยนแปลง (แต่อาจจบลงด้วยค่าเดียวกัน) บนหน้า 42

วิธีการของการเขียนโปรแกรมเชิงสัมพันธ์เชิงหน้าที่ (FRP16) นั้นมาจากชื่อของข้อเท็จจริงที่ว่าองค์ประกอบที่สำคัญของระบบ (ตรรกะและสถานะสำคัญ) นั้นขึ้นอยู่กับการเขียนโปรแกรมเชิงหน้าที่และตัวแบบเชิงสัมพันธ์ (ดูรูปที่ 2)

เชิงอรรถ 16

เพื่อไม่ให้สับสนกับการเขียนโปรแกรมปฏิกิริยาแบบใช้งานได้ [EH97] ซึ่งในความเป็นจริงมีความคล้ายคลึงกันกับวิธีการนี้ แต่ไม่มีความสนใจภายในที่เกี่ยวข้องกับความสัมพันธ์หรือแบบจำลองเชิงสัมพันธ์


ฉันเห็นแล้ว ดูเหมือนจะมีจำนวนมากข้ามกับกรอบปฏิกิริยาที่ฉันกล่าวถึงและการเขียนโปรแกรมเชิงสัมพันธ์เชิงปฏิบัติการแน่นอนมีแนวคิดบางอย่างที่มีอยู่ในปัจจุบัน แต่พวกเขายังวาดแนวคิดของสัญญาณจากพฤติกรรมและเหตุการณ์ของกระดาษที่สอง
danpalmer

3
การครอสโอเวอร์เป็นส่วนใหญ่ที่ระดับของ FP บริสุทธิ์ กระบวนทัศน์เชิงสัมพันธ์และเชิงรับมีไม่เหมือนกันมาก
Justin Spahr-Summers
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.