2015-04-22 11 views

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:

  1. []
  2. ZipList
  3. Data.Sequence.Seq, mà Applicative instance declaration chạy đến vài trăm dòng.
  4. IO
  5. (->) r
  6. parsers trong parsec, attoparsec, regex-applicative.
  7. 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.

+13

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. –

+0

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

+0

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

Các vấn đề liên quan