gpt4 book ai didi

list - 在 Haskell 中合并两个排序列表

转载 作者:行者123 更新时间:2023-12-03 14:29:45 25 4
gpt4 key购买 nike

我正在尝试在 Haskell 中合并两个排序列表。这两个列表必须包含相同的类型,但函数需要采用不同类型的列表。

这就是我所得到的(我知道我需要一些代码来避免尝试从空列表中取出元素):

merge :: Ord a => [a] -> [a] -> [a]
merge [] [] = []
merge (h:first) (c:second) | h <= c = h:merge first (c:second)
| h > c = c:merge (h:first) second

main = merge ['a','b','c'] ['d','e','f']

问题是我是 Haskell 的新手,我收到了这个错误消息,我有点理解但不知道要做什么:
Couldn't match expected type `IO t0' with actual type `[Char]'
In the expression: main
When checking the type of the function `main'

有谁知道这是什么意思?非常感谢帮助!

最佳答案

main必须是 IO行动。如果要打印列表,请执行以下操作:

main = print $ merge ['a','b','c'] ['d','e','f']

关于list - 在 Haskell 中合并两个排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363445/

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