Ai đó có thể cung cấp mô tả hay về Lambda là gì? Chúng tôi có một thẻ cho họ và họ đang trên những bí mật của C# câu hỏi, nhưng tôi vẫn chưa tìm thấy một định nghĩa tốt và giải thích về những gì họ đang ở nơi đầu tiên.Lambda là gì?
Trả lời
Đóng cửa, lambdas và các chức năng ẩn danh không nhất thiết phải giống nhau.
Chức năng ẩn danh là bất kỳ chức năng nào không có (hoặc ít nhất, cần) tên riêng của nó.
Việc đóng là một hàm có thể truy cập các biến nằm trong phạm vi từ vựng của nó khi được khai báo, ngay cả sau khi chúng đã giảm ra khỏi phạm vi. Các hàm ẩn danh không nhất thiết phải là các bao đóng, nhưng chúng ở hầu hết các ngôn ngữ và trở nên ít hữu ích hơn khi chúng không có.
Một lambda là .. không hoàn toàn được xác định rõ như xa như khoa học máy tính đi. Rất nhiều ngôn ngữ thậm chí không sử dụng thuật ngữ; thay vào đó họ sẽ chỉ gọi họ là đóng cửa hoặc chức năng anon hoặc phát minh ra thuật ngữ của riêng họ. Trong LISP, một lambda chỉ là một hàm ẩn danh. Trong Python, một lambda là một hàm ẩn danh được giới hạn cụ thể trong một biểu thức duy nhất; bất cứ điều gì nhiều hơn, và bạn cần một hàm được đặt tên. Lambdas đóng cửa bằng cả hai ngôn ngữ.
thuật ngữ có thể được dùng để ngụ ý tính toán lambda http://en.wikipedia.org/wiki/Lambda_calculus –
Wow Tôi với tôi đã có nhiều hơn một upvote để đưa ra câu hỏi này. Tôi đã nhìn thấy rất nhiều câu trả lời kỹ thuật bị sa lầy trong thuật ngữ, nhưng câu trả lời này là ngắn gọn và làm cho điểm ngay lập tức. –
+1 vì không sử dụng cụm từ "đóng cửa" để xác định một đóng cửa như thể nó làm cho nó rõ ràng hơn. – Daniel
cắt bớt từ wikipedia: http://en.wikipedia.org/wiki/Lambda#Lambda.2C_the_word
Trong các ngôn ngữ lập trình như Lisp và Python, lambda là một nhà điều hành sử dụng để biểu thị các chức năng ẩn danh hoặc đóng cửa, sau sử dụng phép tính lambda.
Tôi đoán bạn có nghĩa là dòng này: Trong các ngôn ngữ lập trình như Lisp và Python, lambda là một toán tử được sử dụng để biểu thị các hàm ẩn danh hoặc các bao đóng, theo cách sử dụng tính toán lambda. Tôi đã quét bài viết nhưng bỏ qua điều đó. – Fred
Nó chỉ là một hàm ẩn danh được khai báo nội dòng, thường được chỉ định cho một đại biểu khi bạn không muốn viết một hàm chính thức.
Trong các ngôn ngữ như lisp/scheme, chúng thường được chuyển tự do như tham số hàm, nhưng thành ngữ trong C# thường tìm thấy lambdas chỉ dùng để đánh giá các hàm, như linq, hoặc để tạo mã xử lý sự kiện một chút terser.
"Lambda" dùng để chỉ Lambda Calculus hoặc biểu thức lambda cụ thể. Lambda tính toán về cơ bản là một chi nhánh của logic và toán học mà đề với các chức năng, và là cơ sở của functional programming languages.
~ William Riley-Land
Còn được gọi là đóng cửa hoặc các chức năng ẩn danh .. tôi thấy mô tả tốt nhất here. Về cơ bản, khối nội tuyến của mã có thể được chuyển như một đối số cho một hàm.
Không thực sự là một điều như 'một lambda' trong lập trình. Tùy thuộc vào ngôn ngữ, v.v.
Nói ngắn gọn, thông thường một ngôn ngữ 'có lambdas' sử dụng thuật ngữ cho các chức năng ẩn danh hoặc trong một số trường hợp là đóng. Giống như vậy, trong Ruby:
f = lambda { return "this is a function with no name" }
puts f.call
Để trả lời các câu trả lời trước:
-Điều quan trọng về các chức năng ẩn danh không phải là chúng không yêu cầu tên.
-Lưu ý là một khái niệm riêng biệt.
-Một bài viết wikipedia khổng lồ không làm cho điều này rõ ràng hơn.
Đây là câu trả lời của tôi trong 3 phần:
1.Một lambda là một hàm cũng là một biểu thức. Đây là điều quan trọng.
2. Nhiều ngôn ngữ thực hiện cái gọi là "lambdas" thêm đường cú pháp để viết những hàm ngắn này dễ dàng hơn và nhanh hơn, nhưng điều này không bắt buộc.
3. Một số ngôn ngữ có thể yêu cầu lambda có không có tác dụng phụ. Đó sẽ là một lambda tinh khiết hơn theo nghĩa chức năng.
Khi hàm là một biểu thức, đó là "công dân hạng nhất" trong ngôn ngữ. Tôi có thể làm tất cả những điều quan trọng với nó:
x = lambda(){ return "Hello World"; }
doit(1, 2, lambda(a,b){ return a > b; }, 3)
x = (lambda(a){ return a+1; }) + 5 // type error, not syntax error
(lambda(a,b){ print(a); log(b); })(1, 2) //() is valid operator here
- 1. Loại hàm lambda là gì?
- 2. "Ràng buộc lambda" trong Python là gì?
- 3. Cú pháp lambda mới là gì?
- 4. Phỏng vấn: Biểu thức Lambda là gì?
- 5. Sử dụng lambda trong PHP là gì?
- 6. Cửa sổ lambda của LinqPad là gì?
- 7. Phạm vi của biến lambda trong C# là gì?
- 8. Một số tài nguyên để học Lambda Calculus là gì?
- 9. Kiến trúc Lambda - nguồn gốc của tên này là gì?
- 10. Chụp đóng (lambda) chức năng gì?
- 11. "lambda" có nghĩa là gì trong Python, và cách đơn giản nhất để sử dụng nó là gì?
- 12. Phương thức Lambda Expression Compile() làm gì?
- 13. Biểu thức lambda là thuộc tính
- 14. Sự khác nhau giữa biểu thức lambda và vị từ trong .NET là gì?
- 15. Hiệu quả và hiệu suất của LINQ và Lambda Expression trong .Net là gì?
- 16. Cú pháp VB.NET để sử dụng List.FindAll() với lambda là gì?
- 17. Quy ước gọi điện mặc định của hàm lambda C++ là gì?
- 18. Mục đích của việc xác định biến bị bắt trong biểu thức lambda là gì?
- 19. Quy tắc tra cứu là gì khi gọi hàm từ lambda?
- 20. () có nghĩa là gì trong biểu thức lambda khi sử dụng Tác vụ?
- 21. Thay thế Regex: sự khác biệt giữa $ & Giá trị (trong biểu thức lambda) là gì?
- 22. Tại sao các biểu thức lambda được gọi là các biểu thức lambda?
- 23. Chức năng Lambda trong PHP là không logic
- 24. Kiểm tra xem hành động là async lambda
- 25. Emacs Lisp: sự khác biệt giữa (hàm (lambda ...)) và (lambda ...)?
- 26. Tăng Lambda/Phoenix - làm thế nào để làm lambda trả về lambda khác?
- 27. Biểu thức Lambda so với tuyên bố Lambda
- 28. => được gọi là gì trong Scala?
- 29. No-op lambda
- 30. Trong Python 3.2, là "lambda" được coi là "từ khóa", "toán tử" hay cả hai?
Làm thế nào về [bài viết tính toán lambda của Wikipedia] (http://en.wikipedia.org/wiki/Lambda_calculus) để bắt đầu? Sau đó, [bài viết lập trình chức năng của Wikipedia] (http://en.wikipedia.org/wiki/Functional_programming_language) là một phần tiếp theo. – Thorsten79
có thể trùng lặp của [Hàm lambda (hàm) là gì?] (Http://stackoverflow.com/questions/16501/what-is-a-lambda-function) – nawfal
biểu thức amda được giải thích [ở đây] (https: // chaseyourjava .blogspot.in/2017/11/lamda-expression-in-java-8.html) đẹp mắt. –