予期されたタイプ 'IO [String]'を実際のタイプ '[String]'と一致させることができませんでした

T.Poe

私はこれらの2つのコードスニペットを持っています。これは同じことをすると思いますが、そうではありません。何故ですか?

これは正常に動作します:

fdup :: String -> IO ()
fdup filename = do
        h <- openFile filename ReadMode
        c <- hGetContents h
        putStr $ unlines $ parse $ lines c
        hClose h

これはエラーを返しますCouldn't match expected type ‘IO [String]’ with actual type ‘[String]’

fdup' :: String -> IO ()
fdup' filename = do
        h <- openFile filename ReadMode
        c <- hGetContents h
        ls <- lines c
        putStr $ unlines $ parse $ ls
        hClose h

parse :: [String] -> [String]

それらの違いは何ですか?

デュプロード

Willem Van Onsemが説明したように、<-これlines cは文字列のリストであり、IO計算ではないため、特定の場所に配置する必要ありません名前を付けたい場合は、代わりにlet-bindingを使用できます。

fdup' :: String -> IO ()
fdup' filename = do
        h <- openFile filename ReadMode
        c <- hGetContents h
        let ls = lines c
        putStr $ unlines $ parse $ ls
        hClose h

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Haskell readFile:期待されるタイプ '[String]'を実際のタイプ 'IOString'と一致させることができませんでした

分類Dev

gtk2hs:予期されたタイプ 'IO [Int]'を実際のタイプ '[Int]'と一致させることができませんでした

分類Dev

モナドパーサー-期待されるタイプ '[(b、String)]'を実際のタイプ 'パーサーb'と一致させることができませんでした

分類Dev

期待されるタイプ `IO() 'を実際のタイプ` a0-> m0a0'と一致させることができませんでした

分類Dev

期待される型 `Maybe(String、Int、String) 'を実際の型`([Char]、t0、[Char])'と一致させることができませんでした

分類Dev

Haskellはタイプ `[] 'を` IO'と一致させることができませんでした

分類Dev

Haskell-タイプ[]をIOと一致させることができませんでした

分類Dev

Haskell:エラー:タイプ「[]」を「IO」と一致させることができませんでした

分類Dev

「タイプ `Maybe 'と` IO'を一致させることができませんでした。期待されるタイプ:IO文字列実際のタイプ:Maybe文字列」Haskellで

分類Dev

Haskellのソフトウェアトランザクショナルメモリ:期待されるタイプSTM a0を実際のタイプIOと一致させることができませんでした()

分類Dev

予期されたタイプ `[Char] 'を実際のタイプ` a'と一致させることができませんでした

分類Dev

予期されたタイプ `Data.ByteString.Internal.ByteString 'を実際のタイプ` ByteString'と一致させることができませんでした

分類Dev

予想されるタイプIOと一致しませんでした

分類Dev

Androidプロジェクトでソナーを実行する:クラス 'foo.bar.R $ string'を元のソースファイルと一致させることができませんでした

分類Dev

期待されるタイプ `[a] 'を実際のタイプ` a'と一致させることができませんでした

分類Dev

Haskell:期待されるタイプ「a1」を実際のタイプ「a」と一致させることができませんでした

分類Dev

Haskellは期待されるタイプ「ItemNat」を実際のタイプ「()」と一致させることができませんでした

分類Dev

期待されるタイプ `[a1] 'を実際のタイプ`([a1]、[a1])'と一致させることができませんでした

分類Dev

haskellは期待されるタイプを実際のタイプ 'Bool'と一致させることができませんでした

分類Dev

期待されるタイプ「a」を実際のタイプ「[a]」と一致させることができませんでした

分類Dev

Haskell '期待されるタイプと実際のタイプを一致させることができませんでした'

分類Dev

期待されるタイプ '(Int, Int)' を実際のタイプ '[t0]' と一致させることができませんでした

分類Dev

期待されるタイプ「a」と実際のタイプ「Integer」を一致させることができませんでした

分類Dev

期待されるタイプ「Post」を実際のタイプ「RouteApp」と一致させることができませんでした

分類Dev

期待されるタイプ 'a-> Int'を実際のタイプ 'IOArrow StringInt'と一致させることができませんでした

分類Dev

ElasticSearchのquery_string内で英数字の文字列をワイルドカードと一致させることができません

分類Dev

タイプ ('string: String)' の値を予期される引数タイプ 'URL' に変換できません

分類Dev

エラー: タイプ "[String]" の値を予期される引数タイプ "String?" に変換できません。

分類Dev

このエラーが表示される理由:予期されるタイプ `[a] 'を実際のタイプ` a'と一致させることができませんでしたか?

Related 関連記事

  1. 1

    Haskell readFile:期待されるタイプ '[String]'を実際のタイプ 'IOString'と一致させることができませんでした

  2. 2

    gtk2hs:予期されたタイプ 'IO [Int]'を実際のタイプ '[Int]'と一致させることができませんでした

  3. 3

    モナドパーサー-期待されるタイプ '[(b、String)]'を実際のタイプ 'パーサーb'と一致させることができませんでした

  4. 4

    期待されるタイプ `IO() 'を実際のタイプ` a0-> m0a0'と一致させることができませんでした

  5. 5

    期待される型 `Maybe(String、Int、String) 'を実際の型`([Char]、t0、[Char])'と一致させることができませんでした

  6. 6

    Haskellはタイプ `[] 'を` IO'と一致させることができませんでした

  7. 7

    Haskell-タイプ[]をIOと一致させることができませんでした

  8. 8

    Haskell:エラー:タイプ「[]」を「IO」と一致させることができませんでした

  9. 9

    「タイプ `Maybe 'と` IO'を一致させることができませんでした。期待されるタイプ:IO文字列実際のタイプ:Maybe文字列」Haskellで

  10. 10

    Haskellのソフトウェアトランザクショナルメモリ:期待されるタイプSTM a0を実際のタイプIOと一致させることができませんでした()

  11. 11

    予期されたタイプ `[Char] 'を実際のタイプ` a'と一致させることができませんでした

  12. 12

    予期されたタイプ `Data.ByteString.Internal.ByteString 'を実際のタイプ` ByteString'と一致させることができませんでした

  13. 13

    予想されるタイプIOと一致しませんでした

  14. 14

    Androidプロジェクトでソナーを実行する:クラス 'foo.bar.R $ string'を元のソースファイルと一致させることができませんでした

  15. 15

    期待されるタイプ `[a] 'を実際のタイプ` a'と一致させることができませんでした

  16. 16

    Haskell:期待されるタイプ「a1」を実際のタイプ「a」と一致させることができませんでした

  17. 17

    Haskellは期待されるタイプ「ItemNat」を実際のタイプ「()」と一致させることができませんでした

  18. 18

    期待されるタイプ `[a1] 'を実際のタイプ`([a1]、[a1])'と一致させることができませんでした

  19. 19

    haskellは期待されるタイプを実際のタイプ 'Bool'と一致させることができませんでした

  20. 20

    期待されるタイプ「a」を実際のタイプ「[a]」と一致させることができませんでした

  21. 21

    Haskell '期待されるタイプと実際のタイプを一致させることができませんでした'

  22. 22

    期待されるタイプ '(Int, Int)' を実際のタイプ '[t0]' と一致させることができませんでした

  23. 23

    期待されるタイプ「a」と実際のタイプ「Integer」を一致させることができませんでした

  24. 24

    期待されるタイプ「Post」を実際のタイプ「RouteApp」と一致させることができませんでした

  25. 25

    期待されるタイプ 'a-> Int'を実際のタイプ 'IOArrow StringInt'と一致させることができませんでした

  26. 26

    ElasticSearchのquery_string内で英数字の文字列をワイルドカードと一致させることができません

  27. 27

    タイプ ('string: String)' の値を予期される引数タイプ 'URL' に変換できません

  28. 28

    エラー: タイプ "[String]" の値を予期される引数タイプ "String?" に変換できません。

  29. 29

    このエラーが表示される理由:予期されるタイプ `[a] 'を実際のタイプ` a'と一致させることができませんでしたか?

ホットタグ

アーカイブ