2012-02-13 23 views

Trả lời

10

Bạn có thể làm việc này bằng cách tra cứu câu chuyện flatMap trong số API index. Nó cung cấp:

FilterMonadic 
Stream 
StreamWithFilter 
TraversableMethods 
Iterator 
ParIterableLike 
ParIterableLike 
ParIterableViewLike 
TraversableLike 
WithFilter 
MonadOps 
TraversableProxyLike 
TraversableViewLike 
LeftProjection 
RightProjection 
Option 
WithFilter 
Responder 
Zipped 
ControlContext 
Parser 
12

Câu trả lời của Luigi là đúng, nhưng không có nhiều thông tin, IMHO.

Tất cả các bộ sưu tập có thể triển khai giao diện đơn lẻ, nhưng chữ ký cho flatMap trong đó không phải là sơ đồ phẳng của đơn nguyên. Tuy nhiên, chúng sẽ hoạt động giống như hầu hết các monads. Hầu như tất cả các lớp được liệt kê bởi Luigi có liên quan đến các bộ sưu tập.

LeftProjectRightProject đề cập đến Either. Về cơ bản, Either không phải là một đơn nguyên, nhưng nếu bạn "chiếu" một bên, thì bên đó hoạt động khá giống với một đơn vị Option.

Parser là một đơn nguyên, tạo thành cơ sở của bộ phối hợp phân tích cú pháp.

Tôi thừa nhận tôi không nhận ra ControlContext. Tôi tự hỏi nếu nó có liên quan đến sự tiếp tục (đó là monads là tốt).

+1

Bạn có ý định gì bởi "chữ ký cho flatMap trong chúng không phải là sơ đồ phẳng"? Bạn đang đề cập đến các máy móc ngầm? – paradigmatic

+1

@paradigmatic, vâng. Xem Tony Morris rant [ở đây] (http://stackoverflow.com/questions/1722726/is-the-scala-2-8-collections-library-a-case-of-the-longest-suicide-note-in -hist/1735694 # 1735694). – missingfaktor

1

Dưới đây là các liên kết đến ba file nguồn từ Scalaz:

Hãy nhìn vào tờ khai ví dụ. Điều đó có thể cung cấp cho bạn một ý tưởng về những loại từ thư viện chuẩn thỏa mãn giao diện đơn thuần.

+1

OP không đề cập đến scalaz –

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