gpt4 book ai didi

haskell - 重复追加到字符串haskell

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

嗨,我是Haskell的新手,不确定如何处理它。到目前为止,我有以下代码

ask :: String -> IO ()
ask prompt =
do
putStrLn prompt
line <- getLine
if line == ""
then ask "please try again"
else putStrLn ("you said: " ++ reverse line)

main :: IO ()
main =
do
ask "please say something"

我正在尝试做到这一点,以便当有人按Enter键而不输入任何内容时,重复的提示将有一个额外的“!”在最后。因此,每次重复时,都会添加一个额外的“!”

示例输出:
请说些什么

请再试一次!

请再试一次!!

请再试一次!!!

最佳答案

您可以在方法中添加一个计数器,例如:

ask :: String -> IO ()
ask = ask' 1

ask' :: Int -> String -> IO ()
ask' n prompt = do
putStrLn prompt
line <- getLine
if null line
then ask' (n+1) ("please try again" ++ replicate n '!')
else putStrLn ("you said: " ++ reverse line)

关于haskell - 重复追加到字符串haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59993793/

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