Spec-Zone.ru › Haskell 7

Data.Array.Storable

Авторские права (c) Университет Глазго 2001
Лицензия BSD-стиль (см. файл libraries/base/LICENSE)
Поддержка libraries@haskell.org
Стабильность экспериментальная
Переносимость непереносимая (использует Data.Array.MArray)
Safe Haskell Нет
Язык Haskell2010

Содержание

  • Массивы Storable.
  • Перегруженный интерфейс изменяемого массива
  • Доступ к указателю на содержимое массива

Описание

Массив storable — это изменяемый массив IO, который хранит своё содержимое в непрерывном блоке памяти, расположенном в куче C. Элементы хранятся в соответствии с классом Storable. Вы можете получить указатель на содержимое массива, чтобы манипулировать элементами из языков вроде C.

Он похож на IOUArray, но медленнее. Его преимущество в том, что он совместим с C.

Массивы storable элементов.

data StorableArray i e Источник

Тип массива

Примеры

Storable e => MArray StorableArray e IO

Перегруженный интерфейс изменяемого массива

Модуль Data.Array.MArray предоставляет интерфейс для storable массивов. Они являются экземплярами класса MArray (с IO монадой).

модуль 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/7.10.3/docs/html/libraries/array-0.5.1.0/Data-Array-Storable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API