0
iより大きいか等しく、j以下である数字、文字、文字列、boolなどのリストから除外しようとしている。私はまた、INT-の私の最初の定義を変更したくない>のInt - > [U] - > [U]、いくつかの例:特定の条件を持つリストの要素を保持する、推論された型は一般的ではない
ここ>fromTo 3 7 [1..10]
[3,4,5,6,7]
>fromTo 1600 1600 [0..]
[1599]
> fromTo (-4) (-3) [False,True]
[]
>fromTo 12 20 "Haskell"
""
>fromTo (-4) 6 [0, 25..]
[0,25,50,75,100,125]
iは
fromTo :: Int->Int->[u]->[u]
fromTo i j list = filter2 i j (filter (\e1 -> e1>= i) list)
filter2::Int->Int->[u]->[u]
filter2 y x filteredI = (filter (\e2 -> e2<= x) filteredI)
思い付いたものとされエラーメッセージは次のとおりです。
- Inferred type is not general enough
*** Expression : filter2
*** Expected type : Int -> Int -> [a] -> [a]
*** Inferred type : Int -> Int -> [Int] -> [Int]
を
を次のように
fromTo
を実装するだろうか? – karakfaこれを行うタイプの関数を書くことはできないので、何らかの形でそれを変更する必要があります。おそらく、比較メソッドを提供するtypeclassを使って 'u'を制約することによって可能になります。 –
あなたは意味しましたか?数字だけが与えられたリスト、それは**インデックスがあります**より大きいか等しい "i" ...? – Franky