Image
私は基本的にフロートのC配列である型を持っています。map :: (Float -> Float) -> Image -> Image
、 、などの関数を簡単に作成できますzipWith :: (Float -> Float -> Float) -> Image -> Image -> Image
。
ただし、これらの関数の上にアプリケーション インスタンスのように見えるものを提供することも可能であり、 や のようなより柔軟なピクセル レベルの操作が可能になると感じてい((+) <$> image1 <*> image2)
ます((\x y z -> (x+y)/z) <$> i1 <*> i2 <*> i3)
。ただし、Image タイプには float 以外のものを含めることができないため、単純なアプローチは失敗し、fmap
そのように実装することはできません。
これはどのように実装できますか?