Có ai có một ví dụ làm việc đầy đủ về một đơn nguyên Scala giải quyết một vấn đề thực tế và so sánh với cùng một mã được viết bằng Java không?Scala Monad - Ví dụ làm việc đầy đủ
Trả lời
Tất cả các bộ sưu tập đều là đơn nguyên (đó là một tuyên bố chung, không phải là một quy tắc cụ thể của Scala) hoặc "có các đơn vị" tùy thuộc vào mức độ nghiêm ngặt của bạn. Scala cũng có Option
như một đơn nguyên, và các dự báo bên phải và trái của Either
. Bạn có thể thấy các khía cạnh monadic của họ tại nơi làm việc bất cứ khi nào bạn thấy một sự hiểu biết với họ.
Ví dụ tinh tế hơn về monads trong Scala là trình kết hợp phân tích cú pháp. Nó tinh tế hơn bởi vì các toán tử ẩn các hoạt động đơn lẻ đằng sau các từ đồng nghĩa trông đẹp hơn trong ngữ pháp.
def optionAdd(x:Option[Int], y:Option[Int]):Option[Int] =
for(xx <- x; yy <- y) yield xx+yy
Tôi không dám lãng phí thời gian với phiên bản java, đặc biệt vì có người thông minh hơn rất nhiều hơn tôi đã làm http://functionaljava.org/examples/1.5/#Option.bind. Ví dụ trong liên kết đang làm về cơ bản những gì optionAdd
thực hiện theo một cách ngắn gọn vô cùng ngắn gọn.
thấy http://jazzy.id.au/default/2012/11/02/scaling_scala_vs_java.html
Ví dụ async cuộc gọi sử dụng monads tới bốn khách hàng:
for {
user <- getUserById(id)
orders <- getOrdersForUser(user.email)
products <- getProductsForOrders(orders)
stock <- getStockForProducts(products)
} yield stock
Futues là monadic và cho comprehensions thể được sử dụng để soạn mã không đồng bộ
Trong java cũng ... bắt đầu chờ đợi Monads with Java 8
- 1. Ví dụ đầy đủ về việc sử dụng gói pySerial
- 2. Ví dụ Monoid Monad
- 3. đăng bài yêu thích và ví dụ đầy đủ
- 4. Ví dụ Comonad trong Scala
- 5. Đơn giản, nhưng đầy đủ tính năng, ứng dụng ví dụ Backbone?
- 6. Ví dụ về trình phân tích cú pháp đầy đủ với parsec?
- 7. Ví dụ tìm kiếm văn bản đầy đủ của SQLite trên iOS
- 8. Mạng thần kinh: Ví dụ nguồn mở, tối thiểu với dữ liệu đào tạo đầy đủ?
- 9. Ví dụ về Google Dart Forms làm việc
- 10. Nhận đầy đủ xml văn bản từ Node dụ
- 11. Ví dụ đơn giản, làm việc của Quartz.net
- 12. Mustache.js + jQuery: ví dụ làm việc tối thiểu là gì?
- 13. ví dụ về việc sử dụng scala.collection.immutable.Set từ java
- 14. monoid vs monad trong Scala
- 15. Tôi có thể tải xuống dự án java ví dụ đầy đủ sử dụng stringtemplate ở đâu?
- 16. Ví dụ về việc sử dụng Generics.Collections.TObjectDictionary
- 17. Ví dụ đầy đủ bằng cách sử dụng MVC2, EF4 và Mô hình Kho lưu trữ với True SoC
- 18. Twig: Làm việc quốc tế hóa (i18n) ví dụ
- 19. Ví dụ làm việc của Rails 3.1 + Juggernaut Instant Messenger?
- 20. Lấy ví dụ CodeIgniter HelloWorld để làm việc
- 21. ví dụ Andengine thấy lỗi không làm việc
- 22. Ví dụ làm việc cho dịch vụ OSGI từ xa
- 23. Băng chuyền đầy đủ chiều rộng đầy đủ với carouFredSel.js
- 24. PHP preg_match chuỗi đầy đủ
- 25. Scala contravariance - ví dụ thực tế đời sống
- 26. SQL transpose đầy đủ bảng
- 27. Ví dụ về đặt lại lồng nhau trong Scala
- 28. Ví dụ tốt về mã scala thành ngữ
- 29. Bất kỳ ví dụ về trò chơi nào ở Scala?
- 30. Ví dụ về DDD .NET
Mặc dù không phải là một ví dụ điển hình, đây là một nghiên cứu khá sâu sắc về Có lẽ đơn nguyên trong Java (với một số Haskell không để xem các ngôn ngữ có khả năng hơn có thể giải quyết vấn đề này như thế nào): http://logicaltypes.blogspot.com/2011/09/monads-in-java.html –
Có ai không? –
Khái niệm về Monad không phải là lạ như nó có vẻ (hoặc tên của nó làm cho nó có vẻ). Đối với tốt hơn hoặc tồi tệ hơn, thuật ngữ này từ Lý thuyết danh mục là vô cùng thiết thực, nhưng nhà tiên phong của lập trình ngày nay là mạnh mẽ de-nhấn mạnh (thậm chí derogate) lý thuyết. Để tâm trí của tôi, đây là một disgrace và disqualifies phần mềm từ lĩnh vực "kỹ thuật" –