2014-10-03 2 views
4

파이썬은이 마법을 shelve으로 가지고 있는데, 이는 dict과 같습니다. 단, 파일에 의해 자동으로 뒷받침됩니다. 이를 통해 프로그램 실행간에 큰 데이터 구조를 유지할 수 있습니다. 정말 놀라운 점은 실행될 때마다 디스크에서 모든 것을로드하지 않지만 키를 요청할 때까지 기다린 다음 해당 키의 값만 제공한다는 것입니다.투명 지속성을위한 파이썬의`shelve '에 하스켈이 해당합니까?

명백한 질문 : 하스켈이 경쟁 할 수 있습니까? 그 중 하나가 map, refs, protobuf, 또는 cereal 같은 일반적인 백엔드의와 함께

+5

하스켈 프로그래머는 저장 및 로딩과 같은 I/O 작업을 투명하게 (즉, 자동으로) 수행하기를 원하지 않습니다. 관용적 인 Haskell 코드는 I/O를 설명합니다. 강력한 파일 기반 저장소가 있습니다. '산성 상태'가 떠오른다. 그러나 여러 가지 이유로 "마법 같은"것은 없습니다. (다른 것들 중에서, 관용적 인 Haskell 데이터 구조는 종종 무한합니다!) –

+2

무한하지만 불가능하지만! 쓰기가 허용되지 않는 경우 투명 write-through 캐시의 가치는 꽤 희미 해 보입니다. – amalloy

답변

3
+3

링크 된 "백엔드"중 실제로 백엔드가 없습니다. 두 가지는 '영속성'과 관련이 없습니다. 나머지는 도우미입니다. Michael은 'persistent-sqlite'에 관심이 있습니다. –

+0

나는 Persistent로 플레이했는데, 내가 좋아하지 않는 것은 SQL 테이블 구조를 정의해야한다는 것입니다. 더 많은 노력으로 Aeson Value처럼 보이는 컬럼을 가진 테이블을 만들 수 있다고 생각합니다. 그러나, 유스 케이스는 무겁고, 거의 쓰지 않기 때문에, Cerial과 Map이 나의 필요를 충족시키는 것을 발견했습니다. –