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
Rubinbot (thảo luận | đóng góp)
Không có tóm lược sửa đổi
Dòng 1: Dòng 1:
Trong [[logic toán học]] và [[khoa học máy tính]], '''phép tính lambda''' ([[tiếng Anh]]:lambda calculus) hay còn được viết là '''λ-calculus''', là một [[hệ thống hình thức]] dùng trong việc định nghĩa [[hàm số]], ứng dụng hàm số và [[đệ quy]]. Phép tính lambda được [[Alonzo Church]] đề xuất vào những năm 193x như là một phần của một nghiên cứu về các [[nền tảng toán học]].<ref>A. Church, "A set of postulates for the foundation of logic", ''Annals of Mathematics'', Series 2, 33:346–366 (1932).</ref><ref>For a full history, see Cardone and Hindley's "History of Lambda-calculus and Combinatory Logic" (2006).</ref> Hệ thống nguyên thủy đã được chứng minh là xung khắc logic vào năm 1935 khi [[Stephen Kleene]] và [[J. B. Rosser]] phát triển [[nghịch lí Kleene&ndash;Rosser]]. Phép tính lambda sau đó đã đượ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 đề [[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, tháng 6 năm 1997. </ref>
Trong [[logic toán học]] và [[khoa học máy tính]], '''phép tính lambda''' ([[tiếng Anh]]:lambda calculus) hay còn được viết là '''λ-calculus''', là một [[hệ thống hình thức]] dùng trong việc định nghĩa [[hàm số]], ứng dụng hàm số và [[đệ quy]]. Phép tính lambda được [[Alonzo Church]] đề xuất vào những năm 1930 như là một phần của một nghiên cứu về các [[nền tảng toán học]].<ref>A. Church, "A set of postulates for the foundation of logic", ''Annals of Mathematics'', Series 2, 33:346–366 (1932).</ref><ref>For a full history, see Cardone and Hindley's "History of Lambda-calculus and Combinatory Logic" (2006).</ref> Hệ thống nguyên thủy đã được chứng minh là xung khắc logic vào năm 1935 khi [[Stephen Kleene]] và [[J. B. Rosser]] phát triển [[nghịch lí Kleene&ndash;Rosser]]. Phép tính lambda sau đó đã đượ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 đề [[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, tháng 6 năm 1997. </ref>


Trong phép tính lambda, các hàm là [[thực thể lớp nhất]] đượ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 phép tính lambda gồm có [[Erlang (ngôn ngữ lập trình)|Erlang]], [[Haskell (ngôn ngữ lập trình)|Haskell]], [[Lisp (ngôn ngữ lập trình)|Lisp]], [[ML (ngôn ngữ lập trình)|ML]], và [[Scheme (ngôn ngữ lập trình)|Scheme]], cũng như là các ngôn ngữ gần đây như [[Clojure]], [[F Sharp (ngôn ngữ lập trình)|F#]], [[Nemerle]], và [[Scala (ngôn ngữ lập trình)|Scala]].
Trong phép tính lambda, các hàm là [[thực thể lớp nhất]] đượ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 phép tính lambda gồm có [[Erlang (ngôn ngữ lập trình)|Erlang]], [[Haskell (ngôn ngữ lập trình)|Haskell]], [[Lisp (ngôn ngữ lập trình)|Lisp]], [[ML (ngôn ngữ lập trình)|ML]], và [[Scheme (ngôn ngữ lập trình)|Scheme]], cũng như là các ngôn ngữ gần đây như [[Clojure]], [[F Sharp (ngôn ngữ lập trình)|F#]], [[Nemerle]], và [[Scala (ngôn ngữ lập trình)|Scala]].

Phiên bản lúc 14:32, ngày 28 tháng 10 năm 2011

Trong logic toán họckhoa học máy tính, phép tính lambda (tiếng Anh:lambda calculus) hay còn được viết là λ-calculus, là một hệ thống hình thức dùng trong việc định nghĩa hàm số, ứng dụng hàm số và đệ quy. Phép tính lambda được Alonzo Church đề xuất vào những năm 1930 như là một phần của một nghiên cứu về các nền tảng toán học.[1][2] Hệ thống nguyên thủy đã được chứng minh là xung khắc logic vào năm 1935 khi Stephen KleeneJ. B. Rosser phát triển nghịch lí Kleene–Rosser. Phép tính lambda sau đó đã đượ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 đề 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.[3]

Trong phép tính lambda, các hàm là thực thể lớp nhất đượ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 phép tính 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.

Phép tính 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, phép tính lambda bất định kiểu không tránh khỏi các nghịch lý về lý thuyết tập hợp (xem Nghịch lí Kleene-Rosser).


Chú thích

  1. ^ A. Church, "A set of postulates for the foundation of logic", Annals of Mathematics, Series 2, 33:346–366 (1932).
  2. ^ For a full history, see Cardone and Hindley's "History of Lambda-calculus and Combinatory Logic" (2006).
  3. ^ Henk Barendregt, The Impact of the Lambda Calculus in Logic and Computer Science. The Bulletin of Symbolic Logic, Volume 3, Number 2, tháng 6 năm 1997.