Thay vì fmap
, áp dụng một chức năng để một giá trị-trong-một-functor:Có tên cho chức năng hoặc mẫu này không?
fmap :: Functor f => (a -> b) -> f a -> f b
tôi cần một chức năng mà các functor có một chức năng và giá trị là đồng bằng:
thing :: Functor f => f (a -> b) -> a -> f b
nhưng tôi can't find one.
Mẫu này được gọi là gì, ở đâu tôi áp dụng chức năng-trong-một-hàm (hoặc trong một ứng dụng, hoặc trong một đơn nguyên) cho một giá trị đơn giản?
Tôi đã triển khai nó rồi, tôi chỉ không hiểu những gì tôi đã làm và tại sao không có chức năng như vậy trong thư viện chuẩn.
Đây không phải là trường hợp đặc biệt của Ứng dụng? Giống như 'func <*> giá trị thuần túy'? –
Lưu ý rằng loại này rất giống với 'ap' và' <*> '. Mặc dù tôi không nhìn thấy một phiên bản 'Functor' tương ứng, và điều này có thể được thực hiện mà không cần giả sử' Applicative 'hoặc' Monad 's:' điều fs x = fmap (\ f -> fx) fs' –
Yep, lambdabot nói 'thing = (.pure). (<*>) 'hoặc' điều = lật (fmap. Lật id) '. Nhưng tôi nhận được nó rằng đây không phải là những gì bạn muốn biết :) –