Functional Programming và Procedural Programming Khác Nhau Như Thế Nào

Related Articles

Functional Programming Là Gì

Functional programming hay lập trình công dụng là một kiểu lập trình mà những bước giám sát Open bên trong chương trình ứng dụng được dựa trên việc ước đạt giá trị trả về từ những hàm và tránh sự biến hóa của trạng thái chương trình cũng như tài liệu trong của nó .

Để hiểu rõ khái niệm trên thì cách tốt nhất là tất cả chúng ta cùng tìm hiểu và khám phá một ví dụ .

Ví dụ sau sử dụng jQuery để tạo ra hiệu ứng ẩn phần nội dung tóm tắt của bài viết khi người dùng click chuột vào một button trên trang, button này có id nhận giá trị là #hide-summary-button và phần tử HTML chứa nội dung phần tóm tắt có thuộc tính id nhận gía trị là #summary:

$("#hide-summary-button").click(function() { $("#summary").hide();
});

Như bạn có thể thấy trong đoạn code ở trên chúng ta không khai báo bất cứ biến global nào và do đó tất nhiên sẽ không có sự thay đổi của giá trị các biến trong chương trình. Việc thay đổi giá trị của biến trong chương trình sẽ tạo ra sự thay đổi trạng thái của chương trình.

Rất nhiều ngôn từ ngày này tương hỗ kiểu lập trình functional programming trong đó có JavaScript, PHP, Ruby … Tuy nhiên đa phần đều còn tương hỗ bổ trợ thêm những kiểu lập trình khác chứ không nhất thiết buộc lập trình viên chỉ được sử dụng hàm khi lập trình. Một trong số những kiểu bổ trợ phối hợp với lập trình functional đó là procedural programming .

Lưu ý: Đừng nhầm lẫn khái niệm function với functional programming. Một ngôn ngữ lập trình cung cấp sẵn các hàm hay function và cho phép chúng ta tự định nghĩa các hàm không đồng nghĩa với việc ngôn ngữ lập trình đó hỗ trợ functional programming. C là một ví dụ điển hình trong đó chúng ta có thể sử dụng các hàm nhưng ngôn ngữ này lại thiên về lập trình kiểu thủ tục hay procedural programming hơn là functional programming

Procedural Programming Là Gì

Procedural programming hay còn gọi là lập trình thủ tục là kiểu lập trình mà việc tínhh toán trong chương trình dựa trên việc ước đạt giá trị của những thủ tục hay procedure ( gồm có một tập hợp những câu lệnh khác nhau ) theo một thứ tự xác lập từ trên xuống dưới .

Một ví dụ về lập trình theo kiểu procedural programming đó là một chương trình tính tổng 50 số tự nhiên đầu tiên trong C như sau:

#include int main()
{ int i, sum = 0; for (i = 1; i 

Nếu sử dụng giản đồ để minh hoạ thì đoạn code trong chương trình trên hoàn toàn có thể được trình diễn như trong hình phía dưới đây :

Ví dụ về kiểu lập trình procedural programming với ngôn ngữ C

Lưu ý: Như đã nói ở trên procedural programming không có nghĩa là ngôn ngữ không hỗ trợ sử dụng hàm. Ngoài ra thì thuật ngữ procedure và function cũng có ý nghĩa khác giống nhau.

Trong phần lớn các ngôn ngữ lập trình như PHP hay JavaScript thì hai khái niệm này được hiểu là một và đa số mọi người sử dụng thuật ngữ function thay vì prodecure, tuy nhiên trong một số ngôn ngữ lập trình nhất định như C hay Java thì hai thuật ngữ này có một chút ít sự khác biệt.

Đối với các ngôn ngữ mà procedure và function có sự khác nhau thì cả hai đều đều được định nghĩa là một tập hợp bao gồm một hoặc nhiều các dòng lệnh (statement) nhằm thực hiện một tác vụ nào đó. Tuy nhiên function cần trả về giá trị (trường hợp đặc biệt không có giá trị nào dược trả về thì giá trị void sẽ được sử dụng) tuy nhiên procedure thì không cần trả về giá trị.

Khác Nhau Giữa Functional Programming và Procedural Programming

Từ những ví dụ trên tất cả chúng ta hoàn toàn có thể đưa ra 1 số ít so sánh giữa functional programming và procedural programming như sau :

  • Functional programming tập trung vào sử dụng tính năng của các hàm và tránh sử dụng các biến cũng như thay đổi giá trị của chúng. Ngược lại procedural programming tập trung vào chi tiết hoạt động của chương trình và thường sử dụng các biến và thay đổi trạng thái của chương trình.
  • Functional programming tập trung vào tính năng của các hàm và cách sử dụng chung, ngược lại procedural programming tập trung vào việc triển khai chi tiết.
  • Functional programming không bắt buộc chương trình phải chạy các hàm theo một thứ tự xác định và chúng ta có thể thay đổi trật tự của các hàm mà không ảnh hưởng tới chương trình, ngược lại procedural programming thì điều này là bắt buộc và thông thường là theo thứ tự từ trên xuống dưới.

Đa số những ngôn từ thời nay tương hỗ lập trình viên viết code theo cả hai kiểu lập trình functional programming và procedural programming .

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories