gpt4 book ai didi

haskell - 产生功能依赖的动机

转载 作者:行者123 更新时间:2023-12-04 04:05:37 24 4
gpt4 key购买 nike

在 Haskell 中具有功能依赖的动机是什么?

函数依赖的一个例子:

class (Monad m) => MonadSupply s m | m -> s where
next :: m (Maybe s)

RWH 书中指出,函数依赖有助于类型检查器。它实际上有什么帮助?

此外,这段代码实际上可以编译:
class (Monad m) => MonadSupply s m where
next :: m (Maybe s)

但我想,它会产生运行时错误。

最佳答案

不使用函数依赖来编写代码是非常好的,因为推理很糟糕,所以使用起来很痛苦。

基本上没有FD,函数get :: MonadState m s => m s必须弄清楚ms独立。通常 m很容易推断,但通常是 s将需要显式注释。

此外,这比我们需要的要通用得多,所以我们可以限制我们的类型检查器说“对于 m ,正好有 1 个 s ”,这样,一次 m推断,s对类型推断算法很明显

关于haskell - 产生功能依赖的动机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20526828/

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