gpt4 book ai didi

haskell - 我应该总是更喜欢更通用的类型而不是特定的类型吗?

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

使用 ghc --make 编译,这两个程序生成完全相同的二进制文件:

-- id1a.hs
main = print (id' 'a')

id' :: a -> a
id' x = x

-- id1b.hs
main = print (id' 'a')

id' :: Char -> Char
id' x = x

这只是因为我的例子是多么琐碎/做作,还是因为这个随着程序变得更加复杂,这是否成立?

此外,是否有任何充分的理由避免使我的类型像可能的?我通常会尝试在不需要的地方保留细节,但是我不太熟悉这对编译语言的影响,特别是 Haskell/GHC。

旁注:

我似乎记得最近的一个SO问题,答案是使类型更多具体是为了改善某些性能问题,尽管我找不到它现在,所以我可能已经想象到了。

编辑:

从可用性/可组合性的角度来看,我理解越通用总是更好,我对这对编译代码的影响更感兴趣。我是否可能太热衷于抽象我的代码?或者这在 Haskell 中通常不是问题?

最佳答案

我会让一切尽可能通用。如果您遇到性能问题,您可以开始考虑搞乱具体的实现,但恕我直言,这不会经常成为问题,如果这确实出现问题,那么也许您的性能需求将与考虑进入命令式领域一样大再次;)

关于haskell - 我应该总是更喜欢更通用的类型而不是特定的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7656767/

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