->
là một trình tạo kiểu kết hợp. Bạn có thể so sánh nó với :
- một hàm tạo giá trị infix cho loại danh sách. Để sử dụng :
một mình chúng ta đặt dấu ngoặc xung quanh nó để nó trở thành một ứng dụng chức năng tiền tố:
(:) a b
cũng giống như a : b
Tương tự, (->) a b
cũng giống như a -> b
, loại của một hàm a
-b
.
(->) a
là một ứng dụng một phần của hàm tạo kiểu, và chính nó là một hàm tạo kiểu loại * -> *
.
Bạn có thể coi đó là "hàm tạo của các loại hàm từ". Ví dụ. (->) Int
là một hàm tạo của các loại hàm từ Int
. Bạn có thể tạo loại chức năng đầy đủ bằng cách chuyển một loại khác cho nó: (->) Int String
là loại chức năng từ Int
đến String
.
instance Functor (->) a
là một hàm sĩ có hoạt động fmap
chuyển đổi một hàm a -> b
thành hàm a -> c
. Bạn có thể so sánh nó với một số instance Functor (Either a)
tương tự có bản đồ Either a b
đến Either a c
bằng cách áp dụng đối số fmap
cho Right
giá trị.
'cao công cụ tìm kiếm-resistant' - không phải cho động cơ SO tìm kiếm. Xem http://stackoverflow.com/q/5310203/11683 – GSerg
Bạn nói đúng! Tôi đoán tôi nên xem xét đôi khi tìm kiếm SO trực tiếp thay vì chỉ dựa vào Google. – drt
Bạn cũng có thể tìm kiếm trên [SymbolHound] (http://www.symbolhound.com/?q=Functor+%28%28-%3E%29+r%29). –