[英]Haskell - Main function for calling all other functions using user input
我是Haskell的新手,自从Java以来,就发现这一切令人困惑。
我正在尝试实现一个功能,该功能在命令行中提示用户输入数字,然后执行与该输入相关的功能,如果没有输入任何输入,则默认为第一个功能。
我在使用if函数时遇到问题,编译器不断给我错误,我不确定为什么。
main = do
putStr "Enter question number: "
xs <- getLine
if (xs == "3")
then
putStr "number of toppings: "
top <- getLine
putStr "diameter of pizza in cm2: "
size <- getLine
(pizzaPrice (top size))
else
putStr "Enter 3 numbers: "
args <- getLine
(numAbove1 (args))
我收到编译器错误“输入'if'解析错误”。
有人可以告诉我我在做什么错。
您需要在then和else子句中添加一个do
:
if ...
then do
putStr ...
...
else do
putStr ...
...
另外,请确保if
语句的缩进量与xs <- ...
语句的缩进量相同,并且不要使用制表符。
例如:
main = do
putStr "Enter question number: "
xs <- getLine
if (xs == "3")
then do
putStr "number of toppings: "
top <- getLine
putStr "diameter of pizza in cm2: "
size <- getLine
return ()
else do
putStr "Enter 3 numbers: "
args <- getLine
return()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.