我一直在阅读“我希望在学习 Haskell 时知道什么”这本书,然后我停在了这个例子上:
class Bifunctor p where
bimap :: (a -> b) -> (c -> d) -> p a c -> p b d
first :: (a -> b) -> p a c -> p b c
second :: (b -> c) -> p a b -> p a c
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何创建该类的实例?这个想法是将函数调用为:
? bimap (+1) (+2) (8, 9) -- (9, 11)
? first (*4) (10, 8) -- (40, 8)
? second (*2) (3, 5) -- (3, 10) …Run Code Online (Sandbox Code Playgroud)