gpt4 book ai didi

list - 如何递归地请求输入并返回列表

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

我在 Haskell 中尝试了很多不同的方法来做到这一点,但我一生都无法弄清楚这一点。

我想从用户那里获取一个名称列表,如果我知道列表的长度(假设是n),我想提示用户n次并在第i处询问第i个项目第一次。

到目前为止,我有这个:



getinput a b
| a == b = []
|否则 = 输入:getinput (a+1) b
其中输入 = 做
一个 <- 获取行
返回一个

但我不断收到错误。

非常感谢任何帮助!

最佳答案

您的代码有问题

  • input 的返回类型是 IO String,因此您无法将其附加到列表中。
  • 类似地,getinput (a+1) b 的返回类型是 IO [String] 而不仅仅是 [String]。<

这里我更正了你的代码

getinput a b | a == b = return []
| otherwise = do
i <- getLine
rest <- getinput (a+1) b
return (i:rest)

更好、更 haskell 的方式

getinput2 n = sequence $ replicate n getLine

关于list - 如何递归地请求输入并返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13985135/

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