Vậy lập trình hàm là gì?
Lập trình chức năng là tất cả về sự tách biệt của các mối quan tâm, lập trình hướng đối tượng cũng
vậy, phải không?
Đó là tất cả về việc đóng gói mã của chúng tôi thành các phần riêng biệt để mọi thứ được tổ chức tốt trong từng phần mã
của chúng tôi.
Và mỗi phần được tổ chức theo cách có ý nghĩa dựa trên chức năng.
Vì vậy, khi chúng ta nói tách rời các mối quan tâm, chúng ta có nghĩa là mỗi phần liên quan đến một thứ mà nó
giỏi.
Chúng tôi nhớ trong phần lập trình hướng đối tượng của chúng tôi, chúng tôi đã có hai lớp
để phân chia các thuộc tính và phương thức, giả sử, một lớp wizard và một lớp Archer.
Và lập trình chức năng có ý tưởng này cũng như tách biệt các mối quan tâm, nhưng chúng cũng tách biệt dữ liệu
và chức năng.
Đó là cách một lập trình viên chức năng nhìn thế giới.
Thay vì kết hợp các phương thức và thuộc tính, chúng tôi tách chúng ra vì có hai thứ riêng biệt.
Có dữ liệu và dữ liệu này được tương tác và hành động.
Nhưng chúng ta sẽ không kết hợp cả dữ liệu và chức năng thành một mảnh trong một đối tượng như chúng ta đã thấy với lập trình
hướng đối tượng.
Bây giờ không có định nghĩa chính xác cho những gì là và không phải là chức năng.
Nhưng nhìn chung các ngôn ngữ chức năng chú trọng đến tính đơn giản, trong đó dữ liệu và chức năng được quan tâm,
bởi vì trong hầu hết các mô hình lập trình chức năng, chúng ta không có ý tưởng về các lớp và đối tượng này.
Thay vào đó, các hàm hoạt động trên cấu trúc dữ liệu được xác định rõ ràng như danh sách và từ điển mà chúng ta
đã thấy thay vì thuộc cấu trúc dữ liệu đó vào một đối tượng.
Nhưng cuối cùng, mục tiêu của mô hình lập trình chức năng cũng giống như mô hình hướng đối
tượng.
Đó là ý tưởng làm cho mã của chúng tôi sạch sẽ và dễ hiểu, dễ mở rộng.
Đó là, chúng tôi có thể phát triển mã của mình và làm cho nó ngày càng tốt hơn và có những người khác đến và mở rộng mã của chúng tôi.
Nó dễ dàng hơn để bảo trì.
Nó giữ cho mã của chúng ta khô ráo để chúng ta không lặp lại chính mình cũng như giữ cho bộ nhớ mã của chúng ta
hiệu quả vì chúng ta không lưu trữ thông tin ở khắp nơi.
Bây giờ, khi chúng ta đến với lập trình hàm, chúng ta có một trụ cột rất quan trọng.
Và không giống như lập trình hướng đối tượng, nơi chúng ta có bốn trụ cột là đóng gói, trừu
tượng, kế thừa và đa hình.
Nếu bạn muốn chia nhỏ mọi thứ trong lập trình hàm, tất cả đều dựa trên khái niệm về các hàm thuần
túy và đây là điều mà chúng ta sẽ khám phá trong vài video tiếp theo.
Nhưng ý tưởng ở đây là có một sự tách biệt giữa dữ liệu của một chương trình và hành vi của một chương trình.
Vì vậy, chúng ta hãy tìm hiểu thêm về các hàm thuần túy.
Có ý nghĩa gì?
Họ là ai?