如何在Haskell进行简单的退出?
代码如下:如何在Haskell进行简单的退出?,haskell,Haskell,代码如下: main :: IO() main = do { putStrLn ("Meniu: "); putStrLn ("1. menu 1"); putStrLn ("2. menu 2"); putStrLn ("3. menu 3"); putStrLn ("4. menu 4"); putStrLn ("5. Exit - Iesire)"); putS
main :: IO()
main = do
{
putStrLn ("Meniu: ");
putStrLn ("1. menu 1");
putStrLn ("2. menu 2");
putStrLn ("3. menu 3");
putStrLn ("4. menu 4");
putStrLn ("5. Exit - Iesire)");
putStrLn ("-------------------------");
putStr ("Enter option: ");
opt <- getLine;
if(opt == "1") then do
{
Code one etc
main
}
else if(opt == "2") then do
{
Code 2 etc
main
}
else if(opt == "3") then do
{
code 3 etc
main
}
else if(opt == "4") then do
{
code 4 etc
main
}
else if(opt == "5") then do
{
??????????? ()
}
else putStrLn "Option is not exist";
}
main::IO()
main=do
{
putStrLn(“Meniu:”);
putStrLn(“1.菜单1”);
putStrLn(“2.菜单2”);
putStrLn(“3.菜单3”);
putStrLn(“4.菜单4”);
putStrLn(“5.出口-Iesire”);
putStrLn(“---------------------------”);
putStr(“输入选项:”);
optreturn()
将在这里工作。在这种情况下,return
的行为实际上与过程语言中的行为类似(但请注意,这通常不是真的)
关于样式的注意事项:带有相等比较的if
…else
链在Haskell中非常不习惯。正确的方法是使用case
:
main = do
putStrLn "Meniu: "
sequence_ [ putStrLn $ [n]++". menu "++[n] | n<-['1'..'5'] ]
putStrLn "-------------------------"
putStr "Enter option: "
opt <- getLine
case opt of
"1" -> do
Code one etc
main
"2" -> do
Code 2 etc
main
"3" -> do
code 3 etc
main
"4" -> do
code 4 etc
main
"5" -> return ()
_ -> putStrLn "Option does not exist"
main=do
putStrLn“Meniu:”
顺序$[n]+>。菜单“+[n]| n do
代码2等
主要的
“3”->做什么
代码3等
主要的
“4”->做什么
代码4等
主要的
“5”->返回()
_->putStrLn“选项不存在”
如果代码缩进正确,则不需要大括号和分号
return()
在这里所做的只是……什么都没有,它是不可操作的。因为main
在case
开关后结束,如果您不像在其他选项中那样递归回到main
,程序也将结束。return()
将在这里工作。在这种情况下,return
的行为实际上与过程语言中的行为类似(但请注意,这通常不是真的)
关于样式的注意事项:带有相等比较的if
…else
链在Haskell中非常不习惯。正确的方法是使用case
:
main = do
putStrLn "Meniu: "
sequence_ [ putStrLn $ [n]++". menu "++[n] | n<-['1'..'5'] ]
putStrLn "-------------------------"
putStr "Enter option: "
opt <- getLine
case opt of
"1" -> do
Code one etc
main
"2" -> do
Code 2 etc
main
"3" -> do
code 3 etc
main
"4" -> do
code 4 etc
main
"5" -> return ()
_ -> putStrLn "Option does not exist"
main=do
putStrLn“Meniu:”
顺序$[n]+>。菜单“+[n]| n do
代码2等
主要的
“3”->做什么
代码3等
主要的
“4”->做什么
代码4等
主要的
“5”->返回()
_->putStrLn“选项不存在”
如果代码缩进正确,则不需要大括号和分号
什么返回()
在这里做的只是…什么都没有,它是不可操作的。因为main
在case
开关后结束,如果你没有像在其他选项中那样递归回到main
,程序也会结束。你正在寻找,但我建议你切换到普通库进行opts解析,就像你正在寻找的那样我建议您切换到普通库进行opts解析,如