Trong Haskell, bạn có thể lấy được Functor
, Foldable
và Traversable
tự động sử dụng deriving
. Tuy nhiên, không có cách nào để lấy được Applicative
. Xem xét có một cách rõ ràng để xác định một cá thể Applicative
(mà sẽ tính đến một ứng dụng nén), không có cách nào để kích hoạt deriving Applicative
?Tại sao không có cách nào để lấy được Functors ứng dụng trong Haskell?
13
A
Trả lời
13
Không, điều này không rõ ràng chút nào. Hãy so sánh các Applicative
trường hợp sau đây:
[]
ZipList
Data.Sequence.Seq
, màApplicative
instance declaration chạy đến vài trăm dòng.IO
(->) r
- parsers trong
parsec
,attoparsec
,regex-applicative
. - Proxy trong gói
pipes
.
Có rất ít tính đồng nhất ở đây và hầu hết các trường hợp đều không rõ ràng.
Các vấn đề liên quan
- 1. Nếu SML.NET có functors tại sao không thể F #?
- 2. Làm thế nào các functors trong Haskell liên quan đến functors trong lý thuyết thể loại?
- 3. Phân tích functors ứng dụng
- 4. Tại sao Tổng và Sản phẩm không phải là Functors
- 5. Làm thế nào để lấy được Phụ gia chung trên Haskell, mà không định nghĩa một cá thể Ứng dụng?
- 6. Tại sao không có đặc điểm "Functor" trong Scala?
- 7. Làm thế nào để ngăn xếp functors ứng dụng trong Scala
- 8. Làm cách nào để lấy ID tiến trình của quy trình được tạo trong Haskell?
- 9. Làm thế nào các functors trong Haskell và OCaml tương tự nhau?
- 10. QAbstractItemModel foreach iterator với functors: có cách nào tốt hơn để làm điều này không?
- 11. Tại sao tôi không thể lấy được từ lâu?
- 12. Tại sao # [lấy được (Hiển thị)] không hoạt động nữa?
- 13. Làm cách nào để có được ngày trong ứng dụng được chạy bởi node.js?
- 14. Có thể lấy Kiểu Loại Constructor trong Haskell không?
- 15. functor ứng dụng nào được sử dụng để chuyển các tham số được chia sẻ?
- 16. Làm thế nào để có được một callstack trong Haskell?
- 17. Tại sao không .htaccess có bất kỳ hiệu ứng nào?
- 18. Tạo một Haskell REPL trong một ứng dụng Haskell
- 19. Lấy thư mục hiện tại trong ứng dụng web .NET
- 20. Tại sao AppDomain.CurrentDomain.BaseDirectory không chứa "bin" trong ứng dụng asp.net?
- 21. Lấy múi giờ hiện tại trong ứng dụng android
- 22. Làm cách nào để có được ngôn ngữ ứng dụng hiện tại?
- 23. Cách lấy tên ứng dụng trong android?
- 24. Tại sao HttpContext không lấy được từ HttpContextBase?
- 25. Tại sao ngữ cảnh không được xem xét khi chọn trường hợp typeclass trong Haskell?
- 26. C#: Tại sao ứng dụng trong System.Windows.Forms?
- 27. Cách lấy BinaryFormatter để deserialize trong một ứng dụng khác
- 28. Làm cách nào để lấy url hiện tại không có tham số trong Yii?
- 29. Làm cách nào để có cấu hình hiện tại của ứng dụng web mà không sử dụng HttpContext?
- 30. Haskell: Tại sao ‘par` được xác định theo cách của nó?
Ngoài ra, '[]' và 'ZipList' là cả hai, cuối cùng, hai trường hợp' Áp dụng' khác nhau hợp lệ cho loại danh sách. –
Vì vậy, có lẽ chúng ta cần một lớp học Zippable? Đó là, đối với những thứ như phát sinh 'Phụ gia' (mà, lần lượt, dường như có một định nghĩa rõ ràng) mà không cần phải khai báo [Ví dụ ứng dụng] (http://lpaste.net/131202). (Có lẽ tôi nên hỏi một câu hỏi khác?) – MaiaVictor
Tệ của tôi. [Additive] (http://hackage.haskell.org/package/linear-1.18.0.1/docs/Linear-Vector.html) là một lớp từ gói Tuyến tính thực hiện các nhóm phụ gia của không gian vectơ. Ví dụ: '[1,2,3]^+^[1,1,1] == [2,3,4]'. Nó có một cài đặt chung, nhưng nó phụ thuộc vào Ứng dụng không thể dẫn xuất, vì vậy bạn không thể lấy được 'Phụ gia' cho, ví dụ, 'dữ liệu Ba a = Ba a a a' bất kể có nguồn gốc rõ ràng. Chỉnh sửa: hm bất cứ ai hỏi những gì phụ gia bị xóa nó. Tôi không nói một mình lol. – MaiaVictor