Nó chỉ xuất hiện với tôi rằng không có cách nào để tiêm một giá trị duy nhất vào một Monoid trong Data.Monoid
. Tôi ngần ngại sử dụng Data.Monad.return
cho điều này nhưng đã hy vọng tìm thấy một cái gì đó như singleton
cho một số loại.Làm thế nào để tiêm một giá trị vào một Monoid?
Trả lời
Lớp Monoid
không cho phép bất kỳ loại tiêm nào vì monoid không phải là bất kỳ loại container nào. Một số container là monoids, và sau đó chúng sẽ có phương tiện tiêm riêng. Đối với lần tiêm tương đối tổng quát, bạn có thể sử dụng pure
từ Applicative
hoặc return
từ Monad
(trước đây là tổng quát hơn).
Hmm ... vậy ... là có một lớp căn cứ lý thuyết kết thúc tốt đẹp' Container '? – fho
@ Florian: nhập các hàm tạo có hoạt động "inject" này, nhưng không nhất thiết là 'Applicative', được gọi là [' Pointed'] (http://hackage.haskell.org/packages/archive/pointed/3.0.3/doc/ html/Data-Pointed.html). – leftaroundabout
Thêm vào những gì người khác đã nói: Int
tạo thành một monoid (theo nhiều cách khác nhau). Làm thế nào bạn sẽ "tiêm" một giá trị vào Int
? Vâng, bạn không; an Int
chỉ là Int
. Bạn có thể có thể sử dụng số không hoặc một cái gì đó ...?
Bây giờ, nếu một cái gì đó là một thùng chứa, nó tạo thành một hình đơn. Nhưng bit monoid không giúp bạn xử lý nó như một container; bạn cần phải thử cái gì khác cho điều đó. Rất nhiều thứ không phải là các thùng chứa hình thành monoids.
- 1. Làm thế nào để làm cho giá trị tiêm xuân vào một trường tĩnh
- 2. Mùa xuân: Làm thế nào để tiêm một giá trị vào trường tĩnh?
- 3. Làm thế nào để tiêm một giá trị Có thể vào Có thể
- 4. Giá trị nhóm bằng một khóa với bất kỳ Monoid
- 5. Tiêm giá trị vào sự phụ thuộc tiêm
- 6. Làm thế nào để thêm một chuỗi vào một giá trị cột trong MySQL?
- 7. Làm thế nào để chèn một mục vào một đối tượng cặp khóa/giá trị?
- 8. Trong CoffeeScript, làm thế nào để bạn thêm một giá trị vào một mảng?
- 9. Làm thế nào để chèn một giá trị NULL
- 10. làm thế nào để bạn tiêm một bean vào một lớp @Controller
- 11. Làm thế nào để tiêm một đối tượng vào một lớp WCF validator
- 12. Làm thế nào để tiêm một lớp css vào một MvcHtmlString?
- 13. Instoid Monoid cho một loại
- 14. Làm thế nào để `({...})` trả về một giá trị?
- 15. Tiêm giá trị bên ngoài vào chú thích Spring
- 16. làm thế nào để thêm vào giá trị của một trường nhập với Jquery
- 17. Làm thế nào để thêm một giá trị số nguyên vào NSMutableArray?
- 18. Làm thế nào để tránh đẩy các giá trị trùng lặp vào một mảng Perl
- 19. Làm thế nào để lưu trữ các giá trị từ vòng lặp foreach vào một mảng?
- 20. Làm cách nào để thay thế một số giá trị cột tùy thuộc vào điều kiện?
- 21. Giá trị của textarea? làm thế nào để điền vào một?
- 22. Chuỗi coi là một monoid
- 23. Giá trị Tiêm: Dto vào Mô hình Miền (NHibernate)
- 24. Làm thế nào để tiêm phụ thuộc vào các lớp học thực hiện một giao diện?
- 25. Làm thế nào để tiêm đậu mùa xuân vào một JSP 2.0 SimpleTag?
- 26. Tôi đã tiêm HttpServletRequest vào một bean. Làm thế nào để đơn vị kiểm tra nó?
- 27. Làm thế nào để tiêm IL vào một phương pháp tại thời gian chạy
- 28. Làm thế nào tôi có thể tiêm một giá trị tài sản vào một chú thích cấu hình MVC mùa xuân 3,0 khiển
- 29. Làm thế nào để lưu một băm vào một CSV
- 30. Tiêm CDI vào một FacesConverter
Một 'Monoid' chỉ là một kiểu với một cá thể 'Monoid', nó không phải là một vùng chứa (nói chung) mà bạn đưa vào các giá trị. Ví dụ có một 'instance Monoid Ordering', và cho rằng bạn có ba giá trị (không dưới)' LT', 'EQ',' GT', không có gì để tiêm, chỉ cần viết giá trị. –
Loại nào? 'singleton :: Monoid m => a -> ???' –
@AlexeyRomanov 'singleton x = mempty' :) (rất hữu ích) –