) t "-6ren"> ) t "-我刚刚读过《Learn you a haskell》,喜欢我所看到的内容,所以开始尝试这门语言。我在网上发现了一些我一直在努力进行类型检查的练习。 我的问题是我不明白下面的类型签名 Misty ((--6ren">
gpt4 book ai didi

haskell - 无法理解 haskell 类型签名 "instance Misty ((->) t "

转载 作者:行者123 更新时间:2023-12-02 16:32:38 24 4
gpt4 key购买 nike

我刚刚读过《Learn you a haskell》,喜欢我所看到的内容,所以开始尝试这门语言。我在网上发现了一些我一直在努力进行类型检查的练习。

我的问题是我不明白下面的类型签名 Misty ((->) t 中的 (->) 是什么。

class Misty m where
banana :: (a -> m b) -> m a -> m b
unicorn :: a -> m a

--- what does this mean?
instance Misty ((->) t) where
banana = error "todo"
unicorn = error "todo"

谢谢!

最佳答案

((->) t)是一个参数类型为 t 的函数,例如 (->) r 的仿函数实例看起来像:

instance Functor ((->) r) where
fmap = (.)

由于类型为fmap

Functor f => (a -> b) -> f a -> f b

以及 (.) 的类型是

(a -> b) -> (r -> a) -> (r -> c)

你可以看到f是一个参数类型为 r 的函数.

在您的 Misty 中class 这意味着 banana 的类型和unicorn是:

banana :: (a -> (t -> b)) -> (t -> a) -> (t -> b)
unicorn :: (a -> (t -> a))

关于haskell - 无法理解 haskell 类型签名 "instance Misty ((->) t ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24345634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com