Haskell 蓄能器在总泵中的应用

Haskell 蓄能器在总泵中的应用,haskell,main,accumulator,Haskell,Main,Accumulator,我想在总泵中使用蓄能器 让我们说: main = do putStrLn "Hey there, what's your name and age?" name <- getLine age <- getLine putStrLn ("Hi " ++ name ++ " you are " ++ age ++ " years old!") main main=do putStrLn“嘿,你叫什么名字和年龄?” name当然,只需使用另一个函数即可使用您

我想在总泵中使用蓄能器

让我们说:

main = do
   putStrLn "Hey there, what's your name and age?"
   name <- getLine
   age <- getLine
   putStrLn ("Hi " ++ name ++ " you are " ++ age ++ " years old!")
   main
main=do
putStrLn“嘿,你叫什么名字和年龄?”

name当然,只需使用另一个函数即可使用您选择的参数:

ask :: String -> IO ()
ask lastAge = do
   -- don't know what you want to do with lastAge
   -- so I just use it when the user did not enter anything
   putStrLn "Hey there, what's your name and age?"
   name <- getLine
   age' <- getLine
   let age = if null age' then lastAge else age'
   putStrLn ("Hi " ++ name ++ " you are " ++ age ++ " years old!")
   ask age

main :: IO ()
main = ask ""
ask::String->IO()
问最后一次
--不知道你想用lastAge做什么
--所以我只是在用户没有输入任何内容时使用它
putStrLn“嘿,你叫什么名字和年龄?”
名称IO()
问最后一次
--我不知道你想用lastAge做什么,但这就是你想要的
putStrLn“嘿,你叫什么名字和年龄?”

name当然,只需使用另一个函数即可使用您选择的参数:

ask :: String -> IO ()
ask lastAge = do
   -- don't know what you want to do with lastAge
   -- so I just use it when the user did not enter anything
   putStrLn "Hey there, what's your name and age?"
   name <- getLine
   age' <- getLine
   let age = if null age' then lastAge else age'
   putStrLn ("Hi " ++ name ++ " you are " ++ age ++ " years old!")
   ask age

main :: IO ()
main = ask ""
ask::String->IO()
问最后一次
--不知道你想用lastAge做什么
--所以我只是在用户没有输入任何内容时使用它
putStrLn“嘿,你叫什么名字和年龄?”
名称IO()
问最后一次
--我不知道你想用lastAge做什么,但这就是你想要的
putStrLn“嘿,你叫什么名字和年龄?”

谢谢你的帮助,但那不是我想要的。如果我没有输入姓名和年龄,那么应该没有输出。下次我输入姓名和年龄时,输出应该是输入的姓名和之前输入的年龄-但是代码片段应该很容易修改-您只要求使用累加器-我只是想向您展示如何使用函数参数来完成它-这只是一个编程任务。有一个提示说,你可以使用一个简单的累加器而不是monad。哦,我想我弄坏了你的家庭作业(对不起)-无论如何:还有一个原因让你自己尝试一下(你不能逃避
IO
monad/在这里输入和输出数据),谢谢你的帮助,但这不是我想要的。如果我没有输入姓名和年龄,那么应该没有输出。下次我输入姓名和年龄时,输出应该是输入的姓名和之前输入的年龄-但是代码片段应该很容易修改-您只要求使用累加器-我只是想向您展示如何使用函数参数来完成它-这只是一个编程任务。有一个提示说,你可以使用一个简单的累加器,而不是monad。哦,我想我弄坏了你的家庭作业(对不起)-无论如何:还有一个原因让你自己尝试一下(你不能逃避
IO
monad/在这里输入和输出数据)