gpt4 book ai didi

Haskell:可怕的类型签名

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

我正在努力理解这种类型签名:

Prelude Text.Regex.Posix> :t (=~)
(=~)
:: (Text.Regex.Base.RegexLike.RegexMaker
Regex CompOption ExecOption source,
Text.Regex.Base.RegexLike.RegexContext Regex source1 target) =>
source1 -> source -> target

我认为他们列出了类型类,sourcesource1target 应该是实例,但语义看起来完全晦涩难懂(即,即使我理解它的意思,我也无法复制它)。

最佳答案

这里没有什么奇怪的:只是一些带有很多参数的类型类。 (长的 Text.Regex.Base... 模块名称也没有帮助。)

  • 必须有 RegexMaker实例:RegexCompOptionExecOption 以及 source 的任何类型
  • 必须有 RegexContext实例:Regex,无论 source1 是什么类型,以及 target 是什么类型
  • (=~) 函数本身接受一个 source1 和一个 source 并给出一个target<

Haskell 自己的 (+) 运算符与 (=~) 的形状类似,但其类型希望更易于阅读:

(+) :: Num a => a -> a -> a

关于Haskell:可怕的类型签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2408723/

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