【发布时间】:2019-04-15 12:00:42
【问题描述】:
我正在尝试在 Haskell 中的字符串末尾添加一个字符串。
albumStr = ""
main = do
let albumStr = albumStr ++ "nothing"
print albumStr
每当我运行它时,它就会卡住 " 在控制台中,我必须终止它。
为什么?以及如何以这种方式将一个字符串添加到另一个字符串?
编辑: 如何将多个字符串添加到当前字符串的末尾而不覆盖它。
谢谢
【问题讨论】:
-
请记住,Haskell 中的所有数据都是不可变的——您无法更改变量。当您编写
let str = str ++ "nothing"时,Haskell 将其读取为“构造一个名为str的新值,它具有str = str ++ "nothing"的属性”, 换句话说,就是一个永无止境的递归计算。跨度>
标签: string haskell infinite-loop accumulate left-recursion