奇数関数を使用してフィルタに非常によく似た関数を書いて、奇数を任意の奇数の2乗で返す関数を作成したいとします。Intsのリストを取得し、任意の奇数の二乗でリストを返す関数を作成する
元
gchi> sqrodd [1,2,3,4,5]
[1,2,9,4,25]
私が持っていると近くにあると考えていることは
sqrodd :: (a->Bool) -> [a] -> [a]
sqrodd odd [] = []
sqrodd odd (x:xs) = if odd x
then (x*x) :sqrodd odd xs
else x : sqrodd odd xs
ですが、私は関数定義でエラーが
「実際のタイプ[a]
と期待されるタイプ
a -> Bool
と一致しませんでした」と言ってます