while :: Int -> Bool -> (Int,Int) -> (Int,Int) ->[Int] -> String
while arguments validity premRange atomRange operators =
return(if validity then "Hello" else "NO")
main :: IO()
main =
do
putStrLn "Welcome to Random Argument Generator"
arguments <- getArguments
validity <- getValidity
putStrLn "Enter the range of the number of premises to each argument"
premRange <- getRange
putStrLn "Enter the range of the number of atomic statments per premises"
atomRange <- getRange
operators <- getOperators
putStrLn "Thank You!\nExecuting..."
test <- while arguments validity premRange atomRange operators
putStrLn "Good Bye"
它抱怨我回来的时候和我的号召。我把这个功能作为一个测试,我真的很困惑它究竟抱怨什么。
答案 0 :(得分:1)
在Haskell中,诸如if
表达式之类的表达式是函数的完美定义。您只需删除return
一词。
之后,你会在main
中出现问题,其中一行不执行I / O,因此其类型与周围的do
不兼容(我认为) :
test <- while arguments validity premRange atomRange operators
但是,啊哈,您可以将其更改为:
let test = while arguments validity premRange atomRange operators