하스켈을 호출하는 C 함수가 있습니다. C 함수는 Haskell 데이터 유형의 StablePtr을 전달하며 Haskell 코드는 그 값 중 일부를 변경해야합니다. 이 작업을 수행하는 효율적인 방법은 무엇입니까? 예를 들어,이 하스켈 + StablePtr
foreign export ccall editChar :: StablePtr MyObject -> CInt -> CChar -> IO()
data MyObject = Obj String
editChar :: StablePtr MyObject -> CInt -> CChar -> IO()
editChar cMyObjectPtr index newChar = do
-- Code goes here
어떻게
이 editChar이 newChar에에 인덱스에서 숯불을 설정하기 위해 가능한 한 효율적이고 Haskelly로 구현 될 것이다 다음 사항을 고려? 결국 돌연변이 된 객체는 메모리가 크고 많은 하위 컴포넌트를 가지므로 editChar의 결과로 새로운 객체를 반환하는 것은 문제가되지 않습니다.