0
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"

它抱怨我在一段时间内回来和我打电话给它。我把这个功能作为一个测试,我真的很困惑它到底在抱怨什么。

4

1 回答 1

1

在 Haskell 中,诸如表达式之类的if表达式是函数的完美定义。你可以删除这个词return

在那之后,你会遇到一个问题,main其中一行不做 I/O,所以它的类型与周围的不兼容do(我认为):

test <- while arguments validity premRange atomRange operators

但是,啊哈,您可以将其更改为:

let test = while arguments validity premRange atomRange operators
于 2013-03-14T01:59:27.260 回答