2016-05-17 36 views
20

Trong khi đọc một đoạn mã Haskell, tôi phát hiện ra điều này: <$>. Nó có nghĩa gì trong Haskell? Sau một số tìm kiếm trên google, tôi vẫn ở trong bóng tối.

+2

Đây không phải là "biểu tượng Haskell lạ" cuối cùng mà bạn sẽ gặp :) – Jubobs

+1

Biểu tượng FYI (http://symbolhound.com/?q=%3C%24%3E+haskell) hoặc cụ thể hơn là hoogle (https : //www.haskell.org/hoogle/? hoogle =% 3C% 24% 3E) rất hữu ích trong trường hợp này. – ron

Trả lời

34

Google không phải là công cụ tìm kiếm tốt nhất cho Haskell. Hãy thử Hoogle hoặc Hayoo, cả hai sẽ chỉ cho bạn ngay lập tức to this:

(<$>) :: Functor f => (a->b) -> f a -> f b 

Nó chỉ đơn thuần là một từ đồng nghĩa ghi vào cho fmap, vì vậy bạn có thể viết ví dụ

Prelude> (*2) <$> [1..3] 
[2,4,6] 
Prelude> show <$> Just 11 
Just "11" 

Giống như hầu hết các chức năng ghi vào, nó là không built-in cú pháp, chỉ là một định nghĩa hàm. Nhưng functors là một công cụ cơ bản mà <$> được tìm thấy khá nhiều ở khắp mọi nơi.