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

ナドニ

テキストを受け取り、いくつかの単語を変更するプログラムが必要です。特に、「Chiara」を読み取るたびに「Leonardo」と書き込む必要があります。その逆も同様です。これは私のコードです:

changeText [] = []
changeText (x:xs)
  | x == "C" = isChiara x xs
  | x == "L" = isLeo x xs
  | otherwise = x ++ changeText x

isChiara x xs
  | nome == "hiara" = "Leonardo" ++ changeText (drop 5 xs)
  | otherwise = x ++ changeText xs
  where nome = take 5 xs

isLeo x xs
  | nome == "eonardo" = "Chiara" ++ changeText (drop 7 xs)
  | otherwise = x ++ changeText xs
  where nome = take 7 xs

ただし、実行しようとすると、次のエラーが発生します。

main.hs:10:1: error:
    Couldn't match type `[Char]' with `Char'
    Expected type: [Char] -> [Char]
      Actual type: [[Char]] -> [Char]

main.hs:17:13: error:
    * Couldn't match type `Char' with `[Char]'
      Expected type: [[Char]]
        Actual type: [Char]
    * In the second argument of `(==)', namely `"hiara"'
      In the expression: nome == "hiara"
      In a stmt of a pattern guard for
                     an equation for `isChiara':
        nome == "hiara"

main.hs:17:49: error:
    * Couldn't match type `[Char]' with `Char'
      Expected type: [Char]
        Actual type: [[Char]]
    * In the first argument of `changeText', namely `(drop 5 xs)'
      In the second argument of `(++)', namely `changeText (drop 5 xs)'
      In the expression: "Leonardo" ++ changeText (drop 5 xs)

main.hs:18:33: error:
    * Couldn't match type `[Char]' with `Char'
      Expected type: [Char]
        Actual type: [[Char]]
    * In the first argument of `changeText', namely `xs'
      In the second argument of `(++)', namely `changeText xs'
      In the expression: x ++ changeText xs

main.hs:22:13: error:
    * Couldn't match type `Char' with `[Char]'
      Expected type: [[Char]]
        Actual type: [Char]
    * In the second argument of `(==)', namely `"eonardo"'
      In the expression: nome == "eonardo"
      In a stmt of a pattern guard for
                     an equation for `isLeo':
        nome == "eonardo"

main.hs:22:49: error:
    * Couldn't match type `[Char]' with `Char'
      Expected type: [Char]
        Actual type: [[Char]]
    * In the first argument of `changeText', namely `(drop 7 xs)'
      In the second argument of `(++)', namely `changeText (drop 7 xs)'
      In the expression: "Chiara" ++ changeText (drop 7 xs)

main.hs:23:33: error:
    * Couldn't match type `[Char]' with `Char'
      Expected type: [Char]
        Actual type: [[Char]]
    * In the first argument of `changeText', namely `xs'
      In the second argument of `(++)', namely `changeText xs'
      In the expression: x ++ changeText xs
Failed, modules loaded: none.

何が問題になっていますか?私はHaskellにまったく慣れておらず、同様の問題に対する答えを探そうとしましたが、何が起こっているのかを理解するのは本当に本当に難しいです。

SLバース-モニカを復活させる

Haskellの文字列はCharのリストです。Haskellはそのタイプを[Char]

あなたが書く'C'と、HaskellはこれをCharとして解釈しCます。
を書く"C"と、Haskellはこれを1文字の文字列「C」として解釈します。
そして、Haskellは正しいタイプの使用について衒学者です。


したがって、より具体的な解決策を提供するには、次のようにします。

問題は最初の部分にあります。

changeText (x:xs)
  | x == "C" = isChiara x xs
  | x == "L" = isLeo x xs
  | otherwise = x ++ changeText xs

これxはCharですが、Haskellが1文字の文字列として解釈する"C"orと比較します"L"

成功する:

changeText (x:xs)
  | x == 'C' = isChiara x xs
  | x == 'L' = isLeo x xs
  | otherwise = x ++ changeText xs

そして、エラーメッセージは消えるはずです。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

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

分類Dev

タイプ「[Char]」を「Data.Text.Internal.Text」と一致させることができませんでした

分類Dev

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

分類Dev

haskell-タイプ '(Char、Int)'と '[Char]'エラーを一致させることができませんでした

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

候補テンプレートが無視されました:「consttype-parameter-0-0 *」を「char」と一致させることができませんでした

分類Dev

C ++:char *とchar(*)[]

分類Dev

Haskell-タイプ「PersistEntityBackendrecord0」を「SqlBackend」と一致させることができませんでした

分類Dev

Haskell-タイプ `(Int、Integer) 'を` Pos'と一致させることができませんでした

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

Haskell:タイプを一致させることができませんでしたか?

分類Dev

charパターン間でN行を一致させ、N行をcharパターンとインラインになるように移動します

分類Dev

Oracle CharタイプとHibernate

分類Dev

Cでは、charポインタを解放してNULLを割り当てることができません

分類Dev

関数からcharポインタを返すことができません

分類Dev

ScalaのCharでどのように一致させることができますか?

分類Dev

タイプchar *の値を使用して、タイプ「char」のエンティティを初期化することはできません。

分類Dev

char *とcharの比較

分類Dev

タイプ「EitherString」を「[]」と一致させることができませんでした

分類Dev

タイプ「a」と「b」を一致させることができませんでした

分類Dev

タイプ `a`と` a1`を一致させることができませんでした

分類Dev

Haskell、Control.Lens:タイプ「[Language.Haskell.TH.Syntax.Dec]」を「Language.Haskell.TH.Syntax.Exp」と一致させることができませんでした

分類Dev

Haskell、Control.Lens:タイプ「[Language.Haskell.TH.Syntax.Dec]」を「Language.Haskell.TH.Syntax.Exp」と一致させることができませんでした

分類Dev

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

Related 関連記事

  1. 1

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

  2. 2

    タイプ「[Char]」を「Data.Text.Internal.Text」と一致させることができませんでした

  3. 3

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

  4. 4

    haskell-タイプ '(Char、Int)'と '[Char]'エラーを一致させることができませんでした

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

    候補テンプレートが無視されました:「consttype-parameter-0-0 *」を「char」と一致させることができませんでした

  10. 10

    C ++:char *とchar(*)[]

  11. 11

    Haskell-タイプ「PersistEntityBackendrecord0」を「SqlBackend」と一致させることができませんでした

  12. 12

    Haskell-タイプ `(Int、Integer) 'を` Pos'と一致させることができませんでした

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

    Haskell:タイプを一致させることができませんでしたか?

  17. 17

    charパターン間でN行を一致させ、N行をcharパターンとインラインになるように移動します

  18. 18

    Oracle CharタイプとHibernate

  19. 19

    Cでは、charポインタを解放してNULLを割り当てることができません

  20. 20

    関数からcharポインタを返すことができません

  21. 21

    ScalaのCharでどのように一致させることができますか?

  22. 22

    タイプchar *の値を使用して、タイプ「char」のエンティティを初期化することはできません。

  23. 23

    char *とcharの比較

  24. 24

    タイプ「EitherString」を「[]」と一致させることができませんでした

  25. 25

    タイプ「a」と「b」を一致させることができませんでした

  26. 26

    タイプ `a`と` a1`を一致させることができませんでした

  27. 27

    Haskell、Control.Lens:タイプ「[Language.Haskell.TH.Syntax.Dec]」を「Language.Haskell.TH.Syntax.Exp」と一致させることができませんでした

  28. 28

    Haskell、Control.Lens:タイプ「[Language.Haskell.TH.Syntax.Dec]」を「Language.Haskell.TH.Syntax.Exp」と一致させることができませんでした

  29. 29

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

ホットタグ

アーカイブ