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!

HK boy viết 13:32 ngày 01/10/2018

Lập trình hàm là… viết hàm.

def fun(n):
    print("Python is fun.\n" * n)


n = int(input()) # Python 3, tương đương với raw_input trong Python 2
fun(n)
rogp10 viết 13:45 ngày 01/10/2018

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).

Hung viết 13:44 ngày 01/10/2018

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

Minh Hiếu viết 13:42 ngày 01/10/2018

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.

Minh Hiếu viết 13:46 ngày 01/10/2018

._. là sao ấy bạn nhỉ?

Hung viết 13:35 ngày 01/10/2018

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.

viết 13:39 ngày 01/10/2018

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.

Bài liên quan
0