期待される型 `[Integer] 'を実際の型` Bool'と一致させることができませんでした

ケビン

リストを再帰的に繰り返して、すべての値が0に等しいかどうかを確認しようとすると、次のエラーが発生します。

 * Couldn't match expected type `[Integer]' with actual type `Bool'
    * In the second argument of `(:)', namely `allZero s'
      In the expression: 0 : allZero s
      In an equation for `allZero': allZero (0 : s) = 0 : allZero s

私のコードは次のとおりです。

allZero :: [Int] -> Bool
allZero (0:_) = True
allZero (0:s) = 0 : allZero s
allZero (_:s) = False;
allZero _ = False

なぜこのエラーが発生するのかわかりません。allZero (0:s) = 0 : allZero s正しいパラメータを指定している行に、リスト「s」があります。

ダミアン・ラファエル・ラテネロ

エラーと解決策を説明しようと思います。解決策は次のとおりです。

allZero :: [Int] -> Bool
allZero [] = True
allZero (x:xs) = (x == 0) && (allZero xs)

2つのパターンを考えてください。まず、要素がない場合、すべてが0であり、意味があります[]。これが最初のパターンです。2番目のパターンでは、最初のパターンがそうであるかどうかを尋ね、残りのすべての要素の0&&0(再帰を使用して)でなければならないと言います

あなたの例では:

allZero :: [Int] -> Bool
allZero (0:_) = True --Wrong, here you are saying if it start with 0, True, no matter what is next, and that's not correct
allZero (0:s) = 0 : allZero s -- this could be right along side with other patterns
allZero (_:s) = False -- this is wrong by sure, you are saying if a list has at list one element, False
allZero _ = False -- And this one has no sense among the others

あなたにはたくさんのパターンがあり、間違っています。あなたは私の最初の答えを同等のものとして変更することができます:

allZero :: [Int] -> Bool
allZero []     = True
allZero (0:xs) = (allZero xs)
allZero _      = False 

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

(Integer、Int、Int)をDayに変換する方法。期待される型「Day」を実際の型「(Integer、Int、Int)」と一致させることができませんでした

分類Dev

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

分類Dev

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

分類Dev

期待される型 `Int 'を実際の型[Int]の二乗和と一致させることができませんでした

分類Dev

期待される型「Int」を実際の型「m0Int」と一致させることができませんでした

分類Dev

Haskellは期待される型floatを実際の型 'a'と一致させることができませんでした

分類Dev

期待される型「整数」を実際の型「m0整数」と一致させることができませんでした

分類Dev

期待される型「整数-> t」を実際の型「ブール」と一致させることができませんでした

分類Dev

Haskell:関数folde:期待される型「a」を実際の型「Expr」と一致させることができませんでした

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

期待される型と実際の型を一致させることができない、Haskell

分類Dev

`[Int] 'を` Integer-> Int'と一致させることができませんでしたが、GHCIで機能します

分類Dev

Haskellは期待されるタイプ 'Bool'をタイプ[t0]に一致させることができません

分類Dev

カスタム型クラスのインスタンス化:期待される型「b」を実際の型「Int」と一致させることができませんでした

分類Dev

Haskellプログラミング割り当て、「期待される型「Int」を実際の型「[a0]-> Int」と一致させることができませんでした」およびその他のいくつかのエラー

分類Dev

DjangoがPostgresでupper(integer)しようとすると、「指定された名前と引数の型に一致する関数がありません」

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

Related 関連記事

  1. 1

    (Integer、Int、Int)をDayに変換する方法。期待される型「Day」を実際の型「(Integer、Int、Int)」と一致させることができませんでした

  2. 2

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

  3. 3

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

  4. 4

    期待される型 `Int 'を実際の型[Int]の二乗和と一致させることができませんでした

  5. 5

    期待される型「Int」を実際の型「m0Int」と一致させることができませんでした

  6. 6

    Haskellは期待される型floatを実際の型 'a'と一致させることができませんでした

  7. 7

    期待される型「整数」を実際の型「m0整数」と一致させることができませんでした

  8. 8

    期待される型「整数-> t」を実際の型「ブール」と一致させることができませんでした

  9. 9

    Haskell:関数folde:期待される型「a」を実際の型「Expr」と一致させることができませんでした

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

    期待される型と実際の型を一致させることができない、Haskell

  17. 17

    `[Int] 'を` Integer-> Int'と一致させることができませんでしたが、GHCIで機能します

  18. 18

    Haskellは期待されるタイプ 'Bool'をタイプ[t0]に一致させることができません

  19. 19

    カスタム型クラスのインスタンス化:期待される型「b」を実際の型「Int」と一致させることができませんでした

  20. 20

    Haskellプログラミング割り当て、「期待される型「Int」を実際の型「[a0]-> Int」と一致させることができませんでした」およびその他のいくつかのエラー

  21. 21

    DjangoがPostgresでupper(integer)しようとすると、「指定された名前と引数の型に一致する関数がありません」

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

ホットタグ

アーカイブ