1

<-型ヒントを追加するとデバッグに役立つと思いますが、 on および IO アクションを使用した結果でそれを行う方法がわかりません

action :: IO ()
    foo :: String --doesnt't compile
    foo <- getLine
4

3 に答える 3

11

<- は宣言ではないため、それはできません。次のいずれかを実行できます。

action :: IO ()
action = do
    foo <- getLine :: IO String
    ...

または、次の場合{-# LANGUAGE ScopedTypeVariables #-}:

action :: IO ()
action = do
    foo :: String <- getLine
    ...
于 2012-12-07T00:53:40.370 に答える
3

完全を期すために、追加したいと思います

action :: IO ()
action = do
  foo <- getLine
  let bar :: String 
      bar = foo
  print bar

これは不格好ですが、GUI をプログラミングしている場合に発生する可能性のある IO モナドに陥った場合に役立ちます。

于 2012-12-07T01:02:26.757 に答える
3

-XScopedTypeVariables、持つことができます(foo :: String) <- getLine

于 2012-12-07T00:55:05.973 に答える