01/10/2018, 11:29
Hỏi về lập trình hướng đối tượng và lập trình hàm?
Hiện giờ mình đang học bên python về phần hướng đối tượng. Rồi cũng lên mạng tìm hiểu thêm về phần hướng đối tượng là gì thì có một số trang nói qua phần lập trình hàm nhưng phần này mình chưa nghe đến (từ lúc học python đến giờ) và cũng không hiểu lắm. Mong các bác có thể giúp mình “thông” phần này!
Bài liên quan
Lập trình hàm là… viết hàm.
Lambda calculus không phải hàm này.
Có thể dùng currying để minh họa:
Ta bắt đầu với hàm cơ bản: f: x -> x-1. Nhưng chỉ trừ 1 thì quá tù nên 1 có thể là biến, đặt ra họ hàm f_y(x): x -> x-y với y là hằng. Đặt g: y -> f_y(x), khai triển thành g: y -> (x -> x-y).
Học Haskell đi bạn, Haskell được phát triển để thống nhất khái niệm ngôn ngữ lập trình hàm đó. Học xong sẽ thấy các ngôn ngữ khác vay mượn nó nhiều.
Tài liệu: http://learnyouahaskell.com
haskell có khó ko bạn? mình nghe đồn là vậy. Mình thì chỉ mới học mỗi python,html,css và mình định theo bên web dev.
._. là sao ấy bạn nhỉ?
Lập trình hàm chỉ là tên đại diện cho nhiều khái niệm khác nhau: pure function, first class function, function composition, immutable Data type và đặc biệt là functor và monad.
Mình gợi ý Haskell vì nó implement tất cả các khái niệm. Các ngôn ngữ hàm khác không hiện thực hết tất cả khái niệm nên không có cái nhìn toàn diện về lập trình hàm.
Trên mạng có nhiều bài nói về sự ra đời của lập trình hàm. Tớ tham khảo 1 số tài liệu thì lập trình hàm ra đời trước oop. Tư duy 2 cái này khác nhau khá nhiều. Tuy nhiên đang ở trường đại học thì nên học oop trước.