Functional Reactive Programming

1. FP, Functional Programming

不是有 function 的程式語言就叫做 functional programming language 唷?
https://ihower.tw/blog/archives/6305
讀完, 還是很難體會 FP。

* FP 精髓

http://www.codedata.com.tw/social-coding/paradigm-shift-to-functional-programming

  • map - 尋訪每個元素,加以處理,並且回傳處理後的元素。
  • filter - 回傳 布林值,以決定是否處理該元素。
  • reduce - 尋訪每個元素,依序組合元素,轉換成結果,丟給下個元素運算組合,然後產生最終組合的結果。

* Lazy

Call by Need

2. FRP, Functional Reactive Programming

http://www.ithome.com.tw/voice/91328

Reactive 的重點在於辨識出資料流,例如可以在欄位C1輸入=B1+5,然後在欄位D1輸入=C1+10,
此時,B1可以視為C1的資料來源,C1又可視為D1的資料來源,
每個欄位可以與其他欄位自由組合,形成資料流延續下去。
Reactive 是其目的,也就是強調必須即時地反應變化,非同步是達到此目的之手段,
為了能讓客戶端訂閱感興趣的資料流,採用了觀察者模式,
為了能讓開發者不落入如何處理(事件)資料的繁雜程式邏輯中,
採用了函數式的典範,隱藏了(事件)資料的迭代、轉換等細節,
從而能讓開發者根據規格進行宣告,以突顯出程式本身的意圖。

沒有留言:

張貼留言