Ngôn ngữ lập trình hàm cho người mới bắt đầu

Ngôn ngữ lập trình hàm - functional language - đầu tiên mà bạn tiếp cận là ngôn ngữ nào nhỉ? Hoặc dự định học ngôn ngữ nào? Tham khảo tí.

2 Likes

Đầu tiên mình nhá:
Haskell, Elixir, Elm.

2 Likes

Mình đã từng chứng kiến ít nhất 3 thằng mà theo mọi người nhận xét là “chúng mày là bọn ăn hại, còn lâu mới trở thành lập trình viên được”, thế mà cả 3 thằng sau này đều trở thành lập trình viên Java, lương tháng > 1.500 đô-la. Bọn này bắt đầu học ngôn ngữ lập trình chả ai biết đó là đâu https://en.wikipedia.org/wiki/Scheme_(programming_language)

5 Likes

Ngôn ngữ gì vậy anh? Ở đâu dạy mà họ học được?

2 Likes

Scheme lần đầu mình biết luôn.
Bạn là 1 trong 3 người? :grin:

2 Likes

Lập trình hàm là họ ngôn ngữ lập trình khác, sử dụng thuật ngữ và phong cách lập trình riêng, khác với C++, Python,…, là ngôn ngữ thủ tục, OOP

Đổi gió sang phong cách lập trình mới để khỏi nhàm chán


Không có ai dạy, toàn tự học.

4 Likes

Mình cũng viết back end với Elixir. Ngôn ngữ lập trình hàm rất sáng sủa :smiley:

3 Likes

Điều khôi hài là cái ngôn ngữ Scheme có nhiều điểm khác biệt với Java, nhất là trong việc nó lập trình thủ tục (đôi lúc được xem là xưa cũ, lỗi thời) hơn là hướng đối tượng.

Nhưng mà khi học Scheme tốt, rất dễ để chuyển sang một ngôn ngữ khác, có lẽ Scheme cũng giống như Pascal, nó vốn là ngôn ngữ để bắt đầu học lập trình, nó không phải là ngôn ngữ mạnh để làm ra sản phẩm, cho nên người nào học thường ít bị xao nhãng, chú tâm vào việc lập trình hơn là bị ngứa ngáy phải làm gì đó. Việc này khá giống với việc đi học võ với tinh thần học cho khoẻ, học cho có bạn bè bà tám, học vì thấy múa đẹp,… không phải để đánh nhau thường sẽ trụ lâu hơn, theo nghề võ cả đời, trong khi những ai mang tâm thế đi học võ để đánh nhau thường sớm rơi rụng.

5 Likes

Bạn làm product trên Elixir luôn rồi à?
Còn mình mới học ngôn ngữ thôi.

1 Like

Mình bắt đầu với Haskell thay vì Scheme.
Haskell được tạo ra để giảng dạy là chủ yếu. Mục đích Haskell được tạo là để thống nhất và hiện thực chính xác các thuật ngữ bên lập trình hàm. Ứng dụng thực tế của Haskell không có nhiều.

Sau khi học cơ bản của Haskell thì mình thấy các ngôn ngữ khác vay mượn thuật ngữ và ý tưởng rất nhiều: lambda, curry function, high order function, lazy collection (stream), functor, applicative functor, monad.

Vế scheme, mình thấy phần MetaProgramming của Elixir vay mượn lại từ Scheme thì phải. Tuy nhiên, bên Scheme tổng quát hơn Elixir.

2 Likes

Đúng rồi. Mình đang làm Elixir/Phoenix

2 Likes

Java 8 bắt đầu mang hơi hướng lập trình hàm rồi, đang muốn thay đổi mindset để học đây. mà đúng là chả dễ thay đổi mindset tí nào. :frowning:

2 Likes

học Kotlin - a modern programing language - bạn ơi :smiley:

2 Likes

Topic thảo luận ngôn ngữ hàm mà :smile:
Kotlin là ngôn ngữ hỗn hợp từ thủ tục, OOP, lập trình hàm.

Nếu bạn biết phần lập trình hàm của Kotlin, hay hơn như thế nào thì bạn cứ đóng góp.
Mình cũng chưa học Kotlin sâu lắm đâu.

1 Like

Bạn thử học 1 ngôn ngữ thuần hàm đi bạn.
Trước mình học Scala (OOP + hàm) mà vẫn không thay đổi được mindset. Từ khi mình chịu bỏ thời gian, học Haskell thì lúc đó mình mới đầu có mindset cơ bản.

Tầm nửa tháng cho Haskell :smile:

2 Likes

chắc để thử, 5 năm làm với OOP, code nó cứ quen tay theo OOP =))

2 Likes

Học ngôn ngữ theo nhu cầu, đừng học theo trào lưu, chúng ta là software dev, ko phải là những con quạ mà theo đuổi những thứ lấp lánh. Ngôn ngữ lập trình cũng giống như võ thuật vậy, ko có ngôn ngữ của Chúa-không có môn võ mạnh nhất, chỉ có sản phẩm tốt và võ sĩ mạnh nhất

4 Likes

Cũng đang cày Haskell xoắn đến mấy cái Monad mới thấy nó đã =)). Đúng là ko nên lập trình functional với thằng Scala vì nó có tính OOP trong đó chơi thuần Functional Haskell là chuẩn, Lisp thì bịn Retain Assign

em chưa hiểu về lập trình hàm lắm, pascal có phải không,

Pascal thì chỉ là lập trình thủ tục thôi. Cứ học từ từ đừng quan tâm đến nhiều quá vì thới giới IT rất rộng lớn. Trong quá trình học thì sẽ lắp hoặc bắt gặp được những kiến thức và sẽ nạp vào sau thôi.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?