Haskell:let x=fn(intStr)之间的差异;返回x和返回fn(inpStr)?

Haskell:let x=fn(intStr)之间的差异;返回x和返回fn(inpStr)?,haskell,monads,Haskell,Monads,在Haskell中,我有一个函数 fn :: String -> Int 然后我尝试在IO单子中使用它 mn = do inpStr <- readFile "input.txt" return fn(inpStr) mn=do inpStr返回fn(inpStr)与返回fn insStr相同。您可能需要返回(fn insStr) 在Haskell中,函数应用程序没有括号,并置就足够了。括号用于对事物进行分组。返回fn(inpStr)与返回fn insStr相

在Haskell中,我有一个函数

fn :: String -> Int
然后我尝试在IO单子中使用它

mn = do
     inpStr <- readFile "input.txt"
     return fn(inpStr)
mn=do
inpStr
返回fn(inpStr)
返回fn insStr
相同。您可能需要
返回(fn insStr)

在Haskell中,函数应用程序没有括号,并置就足够了。括号用于对事物进行分组。

返回fn(inpStr)
返回fn insStr
相同。您可能需要
返回(fn insStr)

在Haskell中,函数应用程序没有括号,并置就足够了。括号用于对事物进行分组

Couldn't match type ‘[Char] -> Integer’ with ‘IO b’
    Expected type: String -> IO b
      Actual type: String -> [Char] -> Integer
    Relevant bindings include mn :: IO b (bound at 01.hs:13:1)
    The function ‘return’ is applied to two arguments,
    but its type ‘([Char] -> Integer) -> String -> [Char] -> Integer’
    has only three
    In a stmt of a 'do' block: return fn (inpStr)
    In the expression:
      do { inpStr <- readFile "input.txt";
           return fn (inpStr) }
mn = do
     inpStr <- readFile "input.txt"
     let x = fn(inpStr)
     return x