gpt4 book ai didi

haskell - 在 Haskell 函数类型声明中使用 [Char] 而不是 String 是不是一个坏主意

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

我刚刚开始使用“Learn you a Haskell for Great Good”来学习 Haskell。
我目前正在阅读“类型和类型类”一章,所以我的知识非常......不存在。
我正在使用带有 SublimeHaskell 包的 Sublime Text 2,它在每次保存时构建/检查文件。

问题:我正在尝试像这样进行函数类型声明:

funcName :: [Char] -> [Char]

我收到此警告:

Warning: Use String Found: [Char] -> [Char] Why not: String -> String

Build FAILED



你能向我解释为什么使用 Char 数组而不是 String 是一个坏主意,或者给我一个链接来解释可能的影响等。我用谷歌搜索并没有找到任何东西。

附言我是一名 C# 开发人员,我了解类似 C 语言的字符数组和字符串之间的区别。

最佳答案

在基础库中的某个地方,您会找到以下定义:

type String = [Char]

其中说 String[Char]完全一样。您选择两者中的哪一个是文档选择。我经常这样定义类型别名:
type Domain = ByteString
type UserName = Text

将类型用于文档是个好主意。

同样作为重要的旁注, [Char]不是字符数组的类型,而是字符列表。由于也有实际的数组类型,所以区分很重要!

关于haskell - 在 Haskell 函数类型声明中使用 [Char] 而不是 String 是不是一个坏主意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470115/

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