Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Function Haskell-使用用户输入调用所有其他函数的主函数_Function_Haskell_If Statement_Compiler Errors - Fatal编程技术网

Function Haskell-使用用户输入调用所有其他函数的主函数

Function Haskell-使用用户输入调用所有其他函数的主函数,function,haskell,if-statement,compiler-errors,Function,Haskell,If Statement,Compiler Errors,我是Haskell的新手,因为来自Java,我觉得这一切都有点混乱 我正在尝试实现一个函数,该函数在命令行中提示用户输入数字,然后执行与输入相关的函数,如果没有输入,则默认为第一个函数 我对if函数有问题,编译器一直给我错误,我不知道为什么 main = do putStr "Enter question number: " xs <- getLine if (xs == "3") then putS

我是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))
main=do
输入问题编号:

xs您需要在then和else子句中添加一个
do

if ...
  then do
    putStr ...
    ...
  else do
    putStr ...
    ...

另外,确保
if
语句的缩进量与
xs相同,在向每个子句添加do时,我会得到相同的错误。
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()