Data.Array.Storable
| Авторские права | (c) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | libraries@haskell.org |
| Стабильность | экспериментальная |
| Переносимость | непереносимая (использует Data.Array.MArray) |
| Безопасный Haskell | Надёжный |
| Язык | Haskell2010 |
Описание
Массив хранимых элементов — это изменяемый массив, хранящий своё содержимое в непрерывном блоке памяти кучи C. Элементы хранятся в соответствии с классом Storable. Вы можете получить указатель на содержимое массива для работы с элементами из языков, таких как C.
Он похож на IOUArray, но медленнее. Его преимущество заключается в совместимости с C.
Массивы хранимых элементов.
data StorableArray i e Источник
Тип массива
Примеры
| Storable e => MArray StorableArray e IO Источник | |
Определено в Data.Array.Storable.Internals МетодыgetBounds :: Ix i => StorableArray i e -> IO (i, i) Источник getNumElements :: Ix i => StorableArray i e -> IO Int Источник newArray :: Ix i => (i, i) -> e -> IO (StorableArray i e) Источник ... | |
Перегруженный интерфейс изменяемого массива
Модуль Data.Array.MArray предоставляет интерфейс для массивов хранимых элементов. Они являются экземплярами класса MArray (с монадой IO).
module Data.Array.MArray
Доступ к указателю на содержимое массива
withStorableArray :: StorableArray i e -> (Ptr e -> IO a) -> IO a Источник
Указатель на содержимое массива получается с помощью withStorableArray. Идея аналогична ForeignPtr (используется здесь внутри). Указатель должен использоваться только во время выполнения действия IO возвращаемого функцией, переданной в качестве аргумента функции withStorableArray.
touchStorableArray :: StorableArray i e -> IO () Источник
Если вы хотите использовать его позже, убедитесь, что вы touchStorableArray после последнего использования указателя, чтобы массив не был освобождён слишком рано.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/array-0.5.8.0-8d84/Data-Array-Storable.html