Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Functional Reactive Programming thực ra là sự kết hợp của Functional Programming + Reactive Programming: 2 thành phần nhỏ thuộc Declarative.
- Reactive Programming: cái này thì đơn giản thôi ạ, nếu ai làm .NET thì sẽ biết Data Binding, chính nó đấy ạ. Hiểu đơn giản thì: a = b + c. Khi b/c thay đổi thì giá trị của a cũng thay đổi theo, tự động, ngay tức thời.
- Functional Programming (FP): là phương thức giải quyết vấn đề bằng cách chia nhỏ vấn đề thành cácfunction. Mỗi function lại có input là 1 function khác và output lại là 1 function. Trong quá trình kết nối các function, chúng hạn chế việc thay đổi các state cũng như không quy định rõ thứ tự của các function. Functional Programming coi chương trình như là 1 bài toán (math problem) chứ không phải là 1 chuỗi các thao tác (series operations).
- Các đặc điểm của FP:
- First-Class Functions
- High-Order Functions
- Pure Functions
- Closures
- Immutable State
- Không cần quan tâm đến những cái tên là gì, bạn chỉ cần hiểu chúng là gì thôi!
- First-Class Functions: bạn có thể lưu 1 function như 1 biến.
- High-Order Functions: Function có thể nhận input là 1 function và trả ra ouput cũng là 1 function.
- Pure Functions: Function không thay đổi bất kì biến nào. Nó chỉ đơn giản là nhận vào input và đưa ra output. Không thay đổi state, không tạo ra side-effects. Map, Reduce ở 2 ví dụ đầu tiên là pure function.
- Closures: Trong Objective-C nó là Block, Java là Lambda, Delegates trong C#… và dĩ nhiên là Closurestrong rất nhiều ngôn ngữ khác :D.
Advertisement
Add Comment
Please, Sign In to add comment