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

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:
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 193x1930 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]].