Haskellエラーで期待されるタイプと一致しませんでした

headfxll

Haskellのコードに問題があります。タスクには、日付にIntタイプ、温度度にFloatタイプのデータがあります。気温が月平均に近づいた日付を返す関数を定義する必要があります。これが私のコードです:

data Measuring = Temp Int Float

temp :: Measuring -> Float
temp (Temp _ tem) = tem

date :: Measuring -> Int
date (Temp dat _) = dat

averageTemp :: [Measuring] -> Float
averageTemp lst = (foldr1 (+) (map temp lst)) / fromIntegral (length lst)

closestToAverage :: [Measuring] -> Int
closestToAverage lst = foldl1 (\ t1 t2 -> if abs(averageTemp lst - t1) <= 
abs(averageTemp lst - t2)
then date t1 else date t2) lst

エラー

"* Couldn't match expected type `Int' with actual type `Float'
    * In the expression:
        foldl1
          (\ t1 t2
             -> if abs (averageTemp lst - t1) <= abs (averageTemp lst - t2) then
                    date t1
                else
                    date t2)
          lst
      In an equation for `closestToAverage':
          closestToAverage lst
            = foldl1
                (\ t1 t2
                   -> if abs (averageTemp lst - t1) <= abs (averageTemp lst - t2) then
                          date t1
                      else
                          date t2)
                lst
   |
83 | closestToAverage lst = foldl1 (\ t1 t2 -> if abs(averageTemp lst - t1) <= abs(averageTemp lst - t2)

   |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"
4城

のタイプはfoldl1ですFoldable t => (a -> a -> a) -> t a -> a高階関数は、2つの入力タイプと同じ出力タイプでなければならないことに注意してください。したがって、t1ort2ではなくdate t1orを返す必要がありますdate t2

また、t1t2はタイプがあるため、からMeasuring減算することはできませんaverageTemp lstFloatを抽出する必要がありますtemp

closestToAverage :: [Measuring] -> Int
closestToAverage lst = date $ foldl1 (\t1 t2 ->
        if abs (averageTemp lst - temp t1) <= abs (averageTemp lst - temp t2)
            then t1
            else t2
    ) lst

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Haskell-期待されるタイプと一致しませんでした

分類Dev

Haskellの「期待されるタイプと一致しませんでした」エラーを修正するにはどうすればよいですか?

分類Dev

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

分類Dev

期待されるタイプと一致しませんでした

分類Dev

Haskell howManyAboveAverageがタイプエラーと一致しませんでした

分類Dev

基準ビルダー更新クエリ中のエラー:BinaryArithmeticOperationが期待されるタイプと一致しませんでした

分類Dev

HaskellをテンプレートHaskellに変換する:期待されるタイプExpQと一致しませんでした

分類Dev

期待されるタイプが受信したタイプと一致しませんでした

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

予想されるタイプのSpringFrameworkエラーと一致しませんでした

分類Dev

エラー:パラメータ値が予期されたタイプと一致しませんでした

分類Dev

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

分類Dev

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

分類Dev

Haskell関数の予想されるタイプと一致しませんでした

分類Dev

Haskellは奇妙な予想されるタイプと一致できませんでした

分類Dev

GHCの「予期されたタイプと一致しませんでした」エラーを追跡するにはどうすればよいですか?

分類Dev

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

分類Dev

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

分類Dev

Haskell:期待されるタイプにも一致しません

分類Dev

InvalidDataAccessApiUsageException:パラメーター値要素が予期されたタイプと一致しませんでした

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

Related 関連記事

  1. 1

    Haskell-期待されるタイプと一致しませんでした

  2. 2

    Haskellの「期待されるタイプと一致しませんでした」エラーを修正するにはどうすればよいですか?

  3. 3

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

  4. 4

    期待されるタイプと一致しませんでした

  5. 5

    Haskell howManyAboveAverageがタイプエラーと一致しませんでした

  6. 6

    基準ビルダー更新クエリ中のエラー:BinaryArithmeticOperationが期待されるタイプと一致しませんでした

  7. 7

    HaskellをテンプレートHaskellに変換する:期待されるタイプExpQと一致しませんでした

  8. 8

    期待されるタイプが受信したタイプと一致しませんでした

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

    予想されるタイプのSpringFrameworkエラーと一致しませんでした

  15. 15

    エラー:パラメータ値が予期されたタイプと一致しませんでした

  16. 16

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

  17. 17

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

  18. 18

    Haskell関数の予想されるタイプと一致しませんでした

  19. 19

    Haskellは奇妙な予想されるタイプと一致できませんでした

  20. 20

    GHCの「予期されたタイプと一致しませんでした」エラーを追跡するにはどうすればよいですか?

  21. 21

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

  22. 22

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

  23. 23

    Haskell:期待されるタイプにも一致しません

  24. 24

    InvalidDataAccessApiUsageException:パラメーター値要素が予期されたタイプと一致しませんでした

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

ホットタグ

アーカイブ