functional programming là gì

Khi mới mẻ bước đi nhập trái đất thiết kế, hẳn ai cũng tiếp tục vướng mắc Functional Programming là gì? Đây là 1 trong định nghĩa cơ phiên bản, tuy nhiên ngẫu nhiên thiết kế viên nào thì cũng phải ghi nhận. Bài viết lách tiếp tục trình diễn rõ rệt rộng lớn về định nghĩa này.

Tổng quan tiền về Functional Programming

Functional Programming là gì?

Functional Programming tức là “lập trình hàm” hoặc còn được gọi là “lập trình chức năng”. Đây là 1 trong cách thức xây cất ứng dụng bằng phương pháp tạo nên những tác dụng, dựa vào những hàm toán học tập.

Bạn đang xem: functional programming là gì

Phương pháp này thông thường được lấy rời khỏi đối chiếu với Lập trình phía đối tượng người dùng (Object-oriented programming – viết lách tắt là OOP). Nó bỏ lỡ những trí tuệ thông dụng của OOP như hiện trạng share, hoặc tài liệu thay cho thay đổi được.

Functional Programming dùng những cụm biểu thức và khai báo thay cho thực đua những câu mệnh lệnh. Chính chính vì thế, cơ hội thiết kế này trọn vẹn không giống với những giấy tờ thủ tục không giống thông thường nhờ vào những hiện trạng toàn cục hoặc toàn viên. Giá trị Output đầu ra của Functional Programming chỉ tùy thuộc vào những thông số được truyền mang đến hàm.

Một số ngôn từ Functional Programming nổi trội gồm những: Haskell, SML, Clojure, Scala, Erlang, Clean, F#, Mathematica,… Một số ngôn từ có tiếng khác ví như JavaScript hoặc Python được chấp nhận người tiêu dùng tùy lựa chọn. Quý khách hàng một vừa hai phải hoàn toàn có thể dùng OOP hoặc cách thức thiết kế hàm, tùy nhập mục tiêu của tớ.

Functional Programming tức là "lập trình hàm" hoặc còn được gọi là "lập trình chức năng" (Nguồn: Unsplash).
Functional Programming tức là “lập trình hàm” hoặc còn được gọi là “lập trình chức năng” (Nguồn: Unsplash).

Đặc điểm của Functional Programming

Nhìn công cộng, Functional Programming đem những điểm lưu ý cơ phiên bản như sau:

  • Đây là cách thức thiết kế chú ý sản phẩm, chứ không hề nên quy trình.
  • Nó nhấn mạnh vấn đề nhập những gì sẽ tiến hành đo lường.
  • Dữ liệu là không bao giờ thay đổi, ko thể thay cho thay đổi.
  • Phương pháp này thay đổi những yếu tố cần thiết xử lý trở thành những tác dụng.
  • Nó được xây cất dựa vào định nghĩa về những hàm toán học tập. Cụ thể, nó dùng những biểu thức ĐK và đệ quy nhằm tiến hành luật lệ tính.
  • Nó ko tương hỗ việc tái diễn, tựa như các câu mệnh lệnh lặp và câu mệnh lệnh ĐK If-Else.

Lịch sử của Functional Programming

  • Nền tảng mang đến Functional Programming là Phép tính Lambda. Nó được cách tân và phát triển kể từ trong thời điểm 1930 mang đến phần mềm hàm, khái niệm và đệ quy.
  • Đến năm 1960, McCarthy design rời khỏi ngôn từ Functional Programming trước tiên và gọi là là LISP.
  • Cuối trong thời điểm 1970, những ngôi nhà phân tích bên trên Đại học tập Edinburgh sẽ tạo nên rời khỏi một ngôn từ thiết kế hàm có tên ML (Meta Language).
  • Vào đầu trong thời điểm 1980, ngôn từ Hope bổ sung cập nhật thêm thắt những loại tài liệu đại số sử dụng được chấp nhận tính đệ quy và phương trình.
  • Năm 2004, ngôn từ Scala xuất hiện nay. Đây sẽ là một trong mỗi bước tiến thủ của Functional Programming.

Minh họa về Functional Programming

Sau đấy là một ví dụ minh họa về Functional Programming được viết lách theo đòi ngôn từ thiết kế Python. Chúng tao sẽ tạo nên rời khỏi một hàm mang tên là “multiply_2_pure” với mục tiêu nhân những số nguồn vào với 2 và trả sản phẩm.

Xem thêm: ete là gì

Ví dụ về Functional Programming nhập Python.
Ví dụ về Functional Programming nhập Python.

Chúng tao thấy rằng, list những số thuở đầu ko thay đổi và hàm cũng ko tham lam chiếu cho tới ngẫu nhiên một thay đổi này không giống ở ngoài phạm vi của hàm. Trường hợp ý bên trên nhập Python được gọi là Pure Functions (Hàm thuần túy). Nghĩa là nội dung hàm sẽ không còn thay cho thay đổi độ quý hiếm của nguồn vào hoặc ngẫu nhiên tài liệu này tồn bên trên phía bên ngoài phạm vi của hàm.

Cách viết lách code này trọn vẹn không giống với OOP vì thế ko dùng ngẫu nhiên đối tượng người dùng (object) hoặc cách thức (method) này. Như vậy tạo nên hàm viết lách rời khỏi dễ dàng được test rộng lớn thật nhiều. Lý vì thế là vì thế thực chất nó không bao giờ thay đổi ngẫu nhiên một thay đổi này nhập trong cả quy trình chạy. Người sử dụng tiếp tục nhận luôn luôn được và một Output đầu ra mỗi một khi chạy hàm và một nguồn vào.

Ưu điểm và giới hạn của Functional Programming

Ưu điểm

Nhìn công cộng, Functional Programming có không ít ưu thế. Cụ thể như sau:

Xem thêm: postman là gì

  • Nó được chấp nhận các bạn tránh khỏi những yếu tố khó khăn hiểu và lỗi nhập mã.
  • Người sử dụng đơn giản tiến hành kiểm test thưa công cộng, nhất là kiểm test đơn vị chức năng (Unit testing) và gỡ lỗi mã (debug).
  • Ứng dụng xử lý tuy vậy song và mặt khác.
  • Hỗ trợ tổ chức thực hiện mã giá và kỹ năng Chịu lỗi chất lượng tốt.
  • Cung cung cấp mô-đun chất lượng tốt rộng lớn so với những đoạn mã cụt.
  • Tăng hiệu suất mang đến ngôi nhà cách tân và phát triển.
  • Hỗ trợ những hàm lồng nhau.
  • Hỗ trợ những cấu hình tài liệu hàm như Lazy Map (Bản thiết bị lười), Danh sách (List),…
  • Cho luật lệ dùng hiệu suất cao Phép tính Lambda.
Nhìn công cộng, Functional Programming có không ít ưu thế (Nguồn: Unsplash).
Nhìn công cộng, Functional Programming có không ít ưu thế (Nguồn: Unsplash).

Hạn chế

Bên cạnh những ưu thế nêu bên trên, Functional Programming đem một vài giới hạn như sau:

  • Mô hình Functional Programming rất khó nên vô cùng khó khăn hiểu so với người mới mẻ chính thức.
  • Functional Programming khó khăn gia hạn vì thế có không ít đối tượng người dùng cách tân và phát triển nhập quy trình viết lách mã.
  • Yêu cầu nhiều ở quy trình làm theo (mocking) và khởi tạo nên môi trường xung quanh.
  • Việc tái ngắt dùng mã vô cùng phức tạp và cần thiết cấu hình lại mã liên tiếp.
  • Các đối tượng người dùng hoàn toàn có thể ko thay mặt đại diện đúng chuẩn mang đến yếu tố cần thiết xử lý.

Tóm lại, Functional Programming là 1 trong cách thức thiết kế có không ít điểm thú vị. Tùy nằm trong nhập mục tiêu và yêu cầu không giống nhau, người tiêu dùng hoàn toàn có thể lựa lựa chọn những cách thức tương thích nhằm xây cất ứng dụng cho chính bản thân mình. Hy vọng qua chuyện nội dung bài viết này, các bạn tiếp tục làm rõ Functional Programming là gì, cũng tựa như các nội dung tương quan cho tới nó.


Tham khảo: Guru99.com.