gpt4 book ai didi

variables - 在 Haskell 中,为什么将值绑定(bind)到变量名不再强制系统提交类型?

转载 作者:行者123 更新时间:2023-12-05 01:03:41 25 4
gpt4 key购买 nike

:t 3 给出 3::Num a => a,因为文字 3 没有特定类型。

早在 2013 年我制作 this video 时,如果我用 let x = 3 将 3 绑定(bind)到一个变量名,Haskell 将不得不提交一个类型,所以 :t x 将给出 x::Integer .

不过,当我最近(2022 年)重复此操作时,我得到了 x::Num a => a。显然,绑定(bind)到变量的值现在可以延迟提交类型。

发生了什么变化?

最佳答案

这种行为是单态限制的结果。该限制在常规编译中仍默认启用,但在 ghci 中已禁用,因为没有全局推理,它更加笨拙。

https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/monomorphism.html

Since GHC 7.8.1, the monomorphism restriction is switched off by default in GHCi’s interactive options

关于variables - 在 Haskell 中,为什么将值绑定(bind)到变量名不再强制系统提交类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73861000/

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