Khác biệt giữa bản sửa đổi của “Phép tính lambda”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
Luckas-bot (thảo luận | đóng góp)
nKhông có tóm lược sửa đổi
Dòng 2: Dòng 2:
Trong [[toán học logic]] và [[khoa học máy tính]], '''giải tích lambda''', hay còn được viết là '''λ-calculus''', là một [[hệ thống mang tính hình thức]] được thiết kế để nghiên cứu định nghĩa về [[ hàm số]], ứng dụng của hàm số và [[đệ quy]]. Ngôn ngữ này được giới thiệu bởi [[Alonzo Church]] và [[Stephen Cole Kleene]] vào những năm 1930 như là một phần trong các [[nghiên cứu cơ bản cho toán học]], đã được phát triển để trở thành một công cụ quan trọng trong việc nghiên cứu các vấn đề về [[lý thuyết tính toán]] và [[lý thuyết đệ quy]], và hình thành nên nền tảng cơ bản của mô hình [[lập trình hàm]].<ref>Henk Barendregt, [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.26.7908 ''The Impact of the Lambda Calculus in Logic and Computer Science.''] ''The Bulletin of Symbolic Logic'', Volume '''3''', Number 2, June 1997. </ref>
Trong [[toán học logic]] và [[khoa học máy tính]], '''giải tích lambda''', hay còn được viết là '''λ-calculus''', là một [[hệ thống mang tính hình thức]] được thiết kế để nghiên cứu định nghĩa về [[ hàm số]], ứng dụng của hàm số và [[đệ quy]]. Ngôn ngữ này được giới thiệu bởi [[Alonzo Church]] và [[Stephen Cole Kleene]] vào những năm 1930 như là một phần trong các [[nghiên cứu cơ bản cho toán học]], đã được phát triển để trở thành một công cụ quan trọng trong việc nghiên cứu các vấn đề về [[lý thuyết tính toán]] và [[lý thuyết đệ quy]], và hình thành nên nền tảng cơ bản của mô hình [[lập trình hàm]].<ref>Henk Barendregt, [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.26.7908 ''The Impact of the Lambda Calculus in Logic and Computer Science.''] ''The Bulletin of Symbolic Logic'', Volume '''3''', Number 2, June 1997. </ref>


Trong giải tích lambda, các hàm là [[first-class entity|first-class entities]]: được truyền vào như các tham số, và trả lại kết quả. Bởi vậy các biểu thức lambda là một dạng của khái niệm thủ tục không có tên mà không tạo ra [[hiệu ứng phụ]]. Giải tích hàm có thể được hiểu như là một ngôn ngữ lập trình lý tưởng và vô cùng nhỏ gọn. Nó có khả năng biểu diễn bất kỳ [[giải thuật]] nào, và nó tạo ra mô hình [[lập trình hàm]]. Các chương trình được tạo thành từ các hàm không có trạng thái và chỉ đơn giản nhận vào dữ liệu và trả lại đầu ra, không tạo ra các hiệu ứng phụ làm thay đổi dữ liệu đầu ra. Các ngôn ngữ lập trình hàm hiện đại, xây dựng dựa trên giải tích lambda gồm có [[Erlang (programming language)|Erlang]], [[Haskell (programming language)|Haskell]], [[Lisp (programming language)|Lisp]], [[ML (programming language)|ML]], và [[Scheme (programming language)|Scheme]],cũng như là các ngôn ngữ gần đây như [[Clojure]], [[F Sharp (programming language)|F#]], [[Nemerle]], và [[Scala (programming language)|Scala]].
Trong giải tích lambda, các hàm là [[first-class entity|first-class entities]]: được truyền vào như các tham số, và trả lại kết quả. Bởi vậy các biểu thức lambda là một dạng của khái niệm thủ tục không có tên mà không tạo ra [[hiệu ứng phụ]]. Giải tích hàm có thể được hiểu như là một ngôn ngữ lập trình lý tưởng và vô cùng nhỏ gọn. Nó có khả năng biểu diễn bất kỳ [[giải thuật]] nào, và nó tạo ra mô hình [[lập trình hàm]]. Các chương trình được tạo thành từ các hàm không có trạng thái và chỉ đơn giản nhận vào dữ liệu và trả lại đầu ra, không tạo ra các hiệu ứng phụ làm thay đổi dữ liệu đầu ra. Các ngôn ngữ lập trình hàm hiện đại, xây dựng dựa trên giải tích lambda gồm có [[Erlang (programming language)|Erlang]], [[Haskell (programming language)|Haskell]], [[Lisp (programming language)|Lisp]], [[ML (programming language)|ML]], và [[Scheme (programming language)|Scheme]], cũng như là các ngôn ngữ gần đây như [[Clojure]], [[F Sharp (programming language)|F#]], [[Nemerle]], và [[Scala (programming language)|Scala]].


Giải tích lambda tiếp tục đóng vai trò quan trọng trong [[các nghiên cứu cơ bản về toán học]], thể hiện trong các thư từ trao đổi của [[Curry-Howard]]. Tuy nhiên, giải tích lambda không xác định kiểu (untyped) không tránh khỏi các nghịch lý về lý thuyết tập hợp (xem trong [[Kleene-Rosser paradox]]).
Giải tích lambda tiếp tục đóng vai trò quan trọng trong [[các nghiên cứu cơ bản về toán học]], thể hiện trong các thư từ trao đổi của [[Curry-Howard]]. Tuy nhiên, giải tích lambda không xác định kiểu (untyped) không tránh khỏi các nghịch lý về lý thuyết tập hợp (xem trong [[Kleene-Rosser paradox]]).

Phiên bản lúc 16:34, ngày 3 tháng 4 năm 2010

Trong toán học logickhoa học máy tính, giải tích lambda, hay còn được viết là λ-calculus, là một hệ thống mang tính hình thức được thiết kế để nghiên cứu định nghĩa về hàm số, ứng dụng của hàm số và đệ quy. Ngôn ngữ này được giới thiệu bởi Alonzo ChurchStephen Cole Kleene vào những năm 1930 như là một phần trong các nghiên cứu cơ bản cho toán học, đã được phát triển để trở thành một công cụ quan trọng trong việc nghiên cứu các vấn đề về lý thuyết tính toánlý thuyết đệ quy, và hình thành nên nền tảng cơ bản của mô hình lập trình hàm.[1]

Trong giải tích lambda, các hàm là first-class entities: được truyền vào như các tham số, và trả lại kết quả. Bởi vậy các biểu thức lambda là một dạng của khái niệm thủ tục không có tên mà không tạo ra hiệu ứng phụ. Giải tích hàm có thể được hiểu như là một ngôn ngữ lập trình lý tưởng và vô cùng nhỏ gọn. Nó có khả năng biểu diễn bất kỳ giải thuật nào, và nó tạo ra mô hình lập trình hàm. Các chương trình được tạo thành từ các hàm không có trạng thái và chỉ đơn giản nhận vào dữ liệu và trả lại đầu ra, không tạo ra các hiệu ứng phụ làm thay đổi dữ liệu đầu ra. Các ngôn ngữ lập trình hàm hiện đại, xây dựng dựa trên giải tích lambda gồm có Erlang, Haskell, Lisp, ML, và Scheme, cũng như là các ngôn ngữ gần đây như Clojure, F#, Nemerle, và Scala.

Giải tích lambda tiếp tục đóng vai trò quan trọng trong các nghiên cứu cơ bản về toán học, thể hiện trong các thư từ trao đổi của Curry-Howard. Tuy nhiên, giải tích lambda không xác định kiểu (untyped) không tránh khỏi các nghịch lý về lý thuyết tập hợp (xem trong Kleene-Rosser paradox).

Chú thích

  1. ^ Henk Barendregt, The Impact of the Lambda Calculus in Logic and Computer Science. The Bulletin of Symbolic Logic, Volume 3, Number 2, June 1997.