gpt4 book ai didi

string - 为什么在尝试将字符串添加到此字符串的末尾时,haskell 会停止?

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

我正在尝试在 Haskell 中的字符串末尾添加一个字符串。

    albumStr = ""
main = do
let albumStr = albumStr ++ "nothing"
print albumStr

每当我运行它时,它就会卡住

在控制台中,我必须终止它。

为什么?以及如何以这种方式将字符串添加到另一个字符串?

编辑:
如何将多个字符串添加到当前字符串的末尾而不覆盖它。

谢谢

最佳答案

与 ML 不同,Haskell 没有 rec标记递归定义的关键字。相反,所有定义都可以递归,这意味着在每个变量定义中,定义的变量在其定义期间已经在范围内。

所以在 let albumStr = albumStr ++ "nothing" , albumStr= 的右侧指的是 = 左侧定义的那个- 不是第 1 行中定义的那个。因此定义是无限递归的并且永远循环。

如果你想根据另一个变量定义一个变量,你必须给它一个不同的名字:

let localAlbumStr = albumStr ++ "nothing"

关于string - 为什么在尝试将字符串添加到此字符串的末尾时,haskell 会停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55688744/

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