Прежде всего, я новичок в репае, и я все еще считаю себя новичком в Haskell в целом.Множество триплетов в repa проверено во время компиляции
Мне нужен эффективный массив триплетов двойников. Наивный подход будет [(Double, Double, Double)]
, но это не эффективно. Я думал, что смогу использовать репа, поскольку он должен быть очень эффективным. Однако я не знаю, как определить массив триплетов.
Я мог бы сделать Array U DIM2 Double
и хранить элементы триплетов во втором измерении (то есть первый индекс является индексом триплета, а второй индекс является элементом триплета). Однако нет ничего, что заставило бы второй размер быть только размером 3.
Мне нужно что-то вроде Array U DIM1 Vec3D
, но это невозможно, так как Vec3D
не является экземпляром Data.Vector.Unboxed.Base.Unbox
.
Что не является «эффективным» в отношении '[(Double, Double, Double)]'? Скажите, пожалуйста, почему это не работает. Что относительно 'Array U DIM1 (Double, Double, Double)'? – crockeea
@ Эрик Когда я сказал, что эффективный, я имел в виду эффективную вычислительную силу. Например, произвольный доступ к спискам Haskell - O (n). – zegkljan