Sự khác biệt giữa Lập trình chức năng và Lập trình mệnh lệnh

Mục lục:

Sự khác biệt giữa Lập trình chức năng và Lập trình mệnh lệnh
Sự khác biệt giữa Lập trình chức năng và Lập trình mệnh lệnh

Video: Sự khác biệt giữa Lập trình chức năng và Lập trình mệnh lệnh

Video: Sự khác biệt giữa Lập trình chức năng và Lập trình mệnh lệnh
Video: Sử dụng dòng lệnh (Command Line) như thế nào để trở thành Coder thần thánh | Vũ Nguyễn Coder 2024, Tháng bảy
Anonim

Sự khác biệt chính - Lập trình chức năng và Lập trình mệnh lệnh

Sự khác biệt chính giữa lập trình hàm và lập trình mệnh lệnh là lập trình hàm coi các tính toán là các hàm toán học và tránh thay đổi trạng thái và dữ liệu có thể thay đổi trong khi lập trình mệnh lệnh sử dụng các câu lệnh thay đổi trạng thái chương trình.

Mô hình lập trình cung cấp một phong cách xây dựng cấu trúc và các yếu tố của một chương trình máy tính. Các mô hình lập trình giúp phân loại các ngôn ngữ lập trình dựa trên các tính năng của chúng. Một ngôn ngữ lập trình có thể ảnh hưởng đến nhiều mô hình hơn. Trong mô hình hướng đối tượng, chương trình được cấu trúc bằng cách sử dụng các đối tượng và các đối tượng truyền thông điệp bằng cách sử dụng các phương thức. Lập trình logic có thể thể hiện tính toán hoàn toàn về mặt logic toán học. Hai mô hình lập trình khác là lập trình chức năng và lập trình mệnh lệnh. Lập trình hàm cho phép thể hiện các phép tính như việc đánh giá các hàm toán học. Lập trình mệnh lệnh cung cấp các câu lệnh thay đổi trạng thái của bộ nhớ một cách rõ ràng. Bài viết này thảo luận về sự khác biệt giữa lập trình hàm và lập trình mệnh lệnh.

Lập trình Chức năng là gì?

Lập trình chức năng dựa trên Toán học. Nguyên tắc quan trọng đằng sau lập trình hàm là tất cả các phép tính được coi là sự kết hợp của các hàm toán học riêng biệt. Một hàm toán học ánh xạ đầu vào đến đầu ra. Giả sử rằng có một hàm được gọi là f (x)=xx. Giá trị x 1 được ánh xạ tới đầu ra 1. Giá trị x 2 được ánh xạ tới đầu ra 4. Giá trị x 3 được ánh xạ tới đầu ra 9, v.v.

Sự khác biệt giữa lập trình chức năng và lập trình mệnh lệnh
Sự khác biệt giữa lập trình chức năng và lập trình mệnh lệnh

Hình 01: Ví dụ về ngôn ngữ lập trình hàm - Haskell

Trong lập trình chức năng, các mẫu được xem xét. Ngôn ngữ lập trình hàm Haskell, sử dụng phương pháp dưới đây để tìm tổng các số.

Hàm sum có các giá trị nguyên và kết quả cũng sẽ là một số nguyên. Nó có thể được viết dưới dạng sum: [int] -> int. Việc tổng kết có thể được thực hiện bằng cách làm theo các mẫu dưới đây.

sum [n]=n, tổng của một số là chính số đó.

Nếu có một danh sách các số, nó có thể được viết như sau. N đại diện cho số đầu tiên và ns đại diện cho các số khác

sum (n, ns)=n + sum ns.

Có thể áp dụng các mẫu trên để tìm tổng của ba số là 3, 4, 5.

3 + tổng [4, 5]

3 + (4 + tổng [5])

3 + 4 + 5=12

Một hàm hoặc một biểu thức được cho là có tác dụng phụ nếu nó sửa đổi một số trạng thái bên ngoài phạm vi của nó hoặc có tương tác có thể quan sát được với các hàm đang gọi của nó bên cạnh giá trị trả về. Lập trình chức năng giảm thiểu tác dụng phụ này. Các thay đổi trạng thái không phụ thuộc vào các đầu vào chức năng. Nó rất hữu ích khi hiểu được hành vi của chương trình. Một nhược điểm của lập trình hàm là học lập trình hàm khó hơn so với lập trình mệnh lệnh.

Lập trình mệnh lệnh là gì?

Lập trình mệnh lệnh là một mô hình lập trình sử dụng các câu lệnh thay đổi trạng thái của chương trình. Nó tập trung vào việc mô tả cách một chương trình hoạt động. Các ngôn ngữ lập trình như Java, C và Clà các ngôn ngữ lập trình mệnh lệnh. Nó cung cấp quy trình từng bước về những việc cần làm. Ngôn ngữ lập trình mệnh lệnh chứa các cấu trúc như vòng lặp if, else, while, for, lớp, đối tượng và hàm.

Sự khác biệt chính giữa lập trình chức năng và lập trình mệnh lệnh
Sự khác biệt chính giữa lập trình chức năng và lập trình mệnh lệnh

Hình 02: Ví dụ về ngôn ngữ lập trình Imperative - Java

Tổng của mười số có thể được tìm thấy trong Java như sau. Trong mỗi lần lặp, giá trị i được thêm vào tổng và được gán cho biến tổng. Trong mỗi lần lặp, giá trị tổng tiếp tục cộng vào tổng đã tính trước đó.

int sum=0;

for (int i=0; i<=10; i ++) {

sum=sum + i;

}

Lập trình mệnh lệnh rất dễ học, dễ hiểu và dễ gỡ lỗi. Có thể dễ dàng tìm thấy trạng thái của chương trình vì sử dụng các biến trạng thái. Một số hạn chế là nó có thể làm cho mã dài dòng và cũng có thể giảm thiểu khả năng mở rộng.

Sự giống nhau giữa Lập trình chức năng và Lập trình mệnh lệnh là gì?

Cả Lập trình Chức năng và Lập trình Mệnh lệnh đều là các mô hình lập trình

Sự khác biệt giữa Lập trình chức năng và Lập trình mệnh lệnh là gì?

Chức năng so với Lập trình mệnh lệnh

Lập trình chức năng là một mô hình lập trình coi tính toán là việc đánh giá các hàm toán học và tránh thay đổi trạng thái và dữ liệu có thể thay đổi. Lập trình bắt buộc là một mô hình lập trình sử dụng các câu lệnh để thay đổi trạng thái của chương trình.
Cấu trúc
Lập trình hàm chứa các lệnh gọi hàm và các hàm bậc cao hơn. Lập trình mệnh lệnh chứa các vòng lặp if, else, while, for, các hàm, lớp và đối tượng.
Ngôn ngữ Lập trình
Scala, Haskell và Lisp là các ngôn ngữ lập trình chức năng. C, C ++, Java là các ngôn ngữ lập trình bắt buộc.
Tiêu điểm
Lập trình chức năng tập trung vào kết quả cuối cùng. Lập trình bắt buộc tập trung vào việc mô tả cách một chương trình hoạt động.
Đơn giản
Lập trình chức năng rất khó. Lập trình mệnh lệnh dễ dàng hơn.

Tóm tắt - Lập trình chức năng và Lập trình mệnh lệnh

Mô hình lập trình cung cấp một phong cách xây dựng cấu trúc và các yếu tố của một chương trình máy tính. Lập trình chức năng và Lập trình mệnh lệnh là hai trong số đó. Sự khác biệt giữa lập trình hàm và lập trình mệnh lệnh là lập trình hàm coi các tính toán là các hàm toán học và tránh thay đổi trạng thái và dữ liệu có thể thay đổi trong khi lập trình mệnh lệnh sử dụng các câu lệnh thay đổi trạng thái chương trình.

Đề xuất: