this question에 대한 응답으로 Data.Vector.Unboxed.Unbox (또는 그 반대로) 인스턴스에서 Foreign.Storable.Storable의 인스턴스를 구성 할 수 있기를 바랍니다. 이것이 가능한가?저장 가능 및 보관함간에 변환
내가 알고있는 가장 가까운 것은 vector-th-unbox이지만이 방법으로는 박스화할 수없는 인스턴스 만 생성됩니다.
this question에 대한 응답으로 Data.Vector.Unboxed.Unbox (또는 그 반대로) 인스턴스에서 Foreign.Storable.Storable의 인스턴스를 구성 할 수 있기를 바랍니다. 이것이 가능한가?저장 가능 및 보관함간에 변환
내가 알고있는 가장 가까운 것은 vector-th-unbox이지만이 방법으로는 박스화할 수없는 인스턴스 만 생성됩니다.
나는 박스에서 보관 가능한 상태로가는 끔찍한 해킹 방법을 상상할 수 있지만, 실제로는 해키하고 비효율적입니다! 사실, 그것을 통해 일한 나는 실제로 그것을 쓰고 싶지 않습니다. Unbox를 사용하여 수행 할 수있는 작업은 모두 상자가없는 벡터에서 작업하는 것입니다. 따라서 싱글 톤 요소로 박스 안의 벡터를 초기화 할 수 있습니다. 해당 요소가 주어지면 벡터를 생성 한 다음 악의에 의해 벡터를 제거하고 Storable 인스턴스에 직접 바이트를 사용할 수 있습니다. 똑같이 악의적으로 다른 방향으로 갈 수 있습니다.
하지만 왜이 작업을하고 싶은지 잘 모르겠습니다. 기본적으로 Storable 인 대부분의 데이터 유형은 Unbox이며 그 반대의 경우도 마찬가지입니다. 그리고 그렇지 않은 사람들을 위해 Storable을 파생시키는 것은 수동 또는 도구를 사용하여 충분히 쉽습니다.
vector
패키지를 확인하십시오.
Data.Vector.convert :: (Vector v a, Vector w a) => v a -> w a
을 사용하십시오.
으로 비비안 이미 당신이 Data.Vector.Generic
모듈에서 사용할 수있는 convert
기능을 사용할 수 있습니다 대답했습니다 http://hackage.haskell.org/package/vector/docs/Data-Vector-Generic.html#v:convert
(내가 graverobber ...이 질문은 2 살이다) – fho
난 당신이 [벡터 패키지 (HTTP에 언급 변환 기능을 찾을 수 없습니다 : //hackage.haskell.org/packages/archive/vector/0.5/doc/html/Data-Vector.html). 또한 타입 서명을 기반으로 어떻게 도움이 될지 모르겠습니다. –
'Data.Vector' 모듈/문서 맨 끝 부분을보십시오. – vivian
내가 보는 것은'toList'와'fromList'이고 [hoogle 검색] (http://www.haskell.org/hoogle/?hoogle=convert)은 아무것도 가져 오지 않습니다. –