【发布时间】:2013-01-14 16:34:05
【问题描述】:
我正在编写一个生成图像的程序,我想将其带入 Repa 数组。我目前使用的类型:
data Colour = Colour Double Double Double
来表示像素,我有一个(可能效率低下但功能强大)函数将Colour 转换为DIM1 数组:
colourToRepa :: Colour -> Array U DIM1 Double
colourToRepa (Colour r g b) = R.fromListUnboxed (Z :. (3::Int)) [r,g,b]
目前我的程序中的图像只是一个[Colour] 值,(Int, Int) 代表尺寸。
我可以使用它轻松地构建Array V DIM2 Colour,但是有没有办法(使用colourToRepa 或其他方式)将此数组扩展为Array U DIM3 Double?
对于列表,我可以只使用 map,但 Repa 的映射保留了数组的形状(我想从 DIM2 转到 DIM3)。
【问题讨论】: