Lập trình hàm và những ngôn ngữ lập trình hàm phổ biến.

08-08-2023 16:25

Hiện nay, lập trình hàm là một phương pháp quan trọng không thể thiếu trong khoa học máy tính. Chính vì vậy việc lựa chọn ngôn ngữ lập trình phù hợp cũng vô cùng cần thiết. Trong bài viết hôm nay, hãy cùng Viện Công nghệ Thông tin và Truyền thông ITPlus tìm hiểu về Lập trình hàm và những ngôn ngữ lập trình hàm phổ biến.

1. Khái niệm

lap trinh ham

Lập trình hàm là mô hình lập trình khai báo, sử dụng hàm thuần tuý để giải quyết vấn đề phức tạp. Hàm nhận giá trị đầu vào và tạo ra giá trị đầu ra không bị ảnh hưởng bởi chương trình. Nó tập trung vào việc giải quyết vấn đề và dùng biểu thức thay vì câu lệnh. Lập trình hàm xử lý rất tốt ở các hàm toán học, với giá trị không tương quan và không sử dụng trạng thái chia sẻ hay dữ liệu có thể thay đổi của lập trình hướng đối tượng

Một số ngôn ngữ Functional Programming tiêu biểu phải kể đến như: Haskell, SML, Scala, Clean, F#, Mathematica,… Ngoài ra, còn một số ngôn ngữ nổi tiếng khác như JavaScript hay Python nhằm thêm lựa chọn cho người sử dụng. Bạn vừa có thể sử dụng OOP hoặc phương pháp lập trình hàm tuỳ vào mục đích sử dụng của mình

Nguyên lý và tính chất của lập trình hàm:

  • First - class function: Hàm là đối tượng đầu tiên

  • Immutable data: Dữ liệu không thay đổi

  • Pure functions: Đồng nhất đầu ra và và không bị tác động phụ

  • Recursion: Đệ quy - hàm tự gọi lặp đi lặp lại cho đến khi chúng đạt đến trạng thái hoặc giải pháp mong muốn

  • High - order functions: Hàm bậc cao

2. Lịch sử lập trình hàm

  • Nguồn gốc cho lập trình hàm là Phép tính Lambda - được nghiên cứu và phát triển từ những năm 1930 cho ứng dụng hàm, định nghĩa và đệ quy.

  • Cho đến năm 1960, Ngôn ngữ lập trình hàm lầm đầu tiên được thiết kế và đặt tên là LISP bởi nhà khoa học McCarthy

  • Vào những năm cuối 1970, một ngôn ngữ lập trình hàm mang tên ML (Meta Language) được nghiên cứu và tạo ra bởi các nhà nghiên cứu tại Đại học Edinburgh 

  • Vào đầu những năm 1980, ngôn ngữ Hope bổ sung thêm các kiểu dữ liệu đại số dùng cho phép tính đệ quy và phương trình.

  • Năm 2004, ngôn ngữ Scala xuất hiện. Đây được xem là một trong những bước tiến của Lập trình hàm

3. Những ngôn ngữ lập trình hàm phổ biến

Scala

lap trinh ham

Scala sở hữu rất nhiều ưu điểm. Thứ nhất, nó là ngôn ngữ lập trình chạy trên nền máy ảo Java, vừa hỗ trợ lập trình hàm vừa hỗ trợ lập trình hướng đối tượng. Thứ hai, Scala có cú pháp ngắn gọn, dễ đọc hiểu, cấu trúc nhẹ cho phép lập trình viên có thể giảm kích thước code… Một số nền tảng tính toán phân tán, xử lí dữ liệu lớn phổ biến được viết bằng Scala bạn có thể tham khảo như Apache Spark…

JavaScript

lap trinh ham

JavaScript là một trong những ngôn ngữ lập trình phổ biến nhất hiện nay, tuy nhiên nó cũng cho phép chúng ta sử dụng cho lập trình hàm. 

Thực chất từ ban đầu JavaScript chưa thực sự hoàn thiện, nó vẫn tồn đọng một số lỗi với khả năng biến đổi, nhưng các nhà phát triển đã khắc phục và tiến hành cải tiến cho ra các phiên bản mới hơn, tối ưu hơn. Ban đầu để xác định biến phải sử dụng var, nhưng sau này có thể sử dụng thêm Const và Let. Từ khóa Const cho phép xác định các hằng số làm tên ngụ ý, còn từ khóa này để giới hạn phạm vi của một biến số trong hàm mà nó khai báo.

Python

lap trinh ham

Ngôn ngữ lập trình hàm tiêu biểu khác phải kể đến là Python. Python cũng là một ngôn ngữ lập trình tổng quát có thể áp dụng với bất kỳ mô hình lập trình nào.

Lợi thế làm Python nổi trội hơn so với các ngôn ngữ khác là việc sử dụng từ khóa lambda trong mô hình lập trình hàm. Nhờ vậy, bạn có thể sử dụng biểu thức Lambda để làm Shorthand (phương thức tốc ký) cho các hàm đơn giản, hay gán vào một biến như một hàm Python tiêu chuẩn.

Elm

lap trinh ham

Là một ngôn ngữ lập trình hàm thuần túy được Evan Czaplicki thiết kế vào năm 2012, ngay tại thời điểm ra mắt, ngôn ngữ này đã nhanh chóng thu hút sự chú ý và được ưa chuộng với nhà phát triển web, điển hình là cho mục đích tạo giao diện người dùng.

Vì Elm sử dụng kiểm tra kiểu tĩnh (static type checking), đảm bảo không xảy ra lỗi runtime exception và bắt lỗi ngay trong khi biên dịch nên đây sẽ là một điểm cộng lớn cho ngôn ngữ này là người dùng sẽ ít thấy lỗi hơn các ngôn ngữ khác.

Haskell

lap trinh ham

Haskell, tương tự Elm, cũng là một ngôn ngữ lập trình hàm, sử dụng kiểu kiểm tra tĩnh, được thiết kế và phát triển lần đầu tiên vào năm 1990, ngôn ngữ này thường được sử dụng cho mục đích giải quyết các vấn đề thế giới thực mặc dù nguồn gốc của lập trình hàm là trong giới học thuật.

Chính vì vậy mà nó được áp dụng trong các dự án được dùng rộng rãi để chuyển đổi các kiểu markup khác nhau thành các định dạng khác cũng có thể sử dụng ngôn ngữ này, chẳng hạn như trình quản lý cửa sổ Xmonad. Map, Filter, Reduce là một số hàm tiêu chuẩn được tích hợp trong Haskell.

Ban Truyền thông ITPlus

Bài viết cùng chủ đề