2017-09-12 1 views
0

이 디자인 결정의 근거에 대해 묻고 싶습니다.왜 이유 배열이 변경 될 수 있습니까?

변경할 수있는 이유 배열은 기본적으로 변경할 수없는 다른 데이터 구조 (list, record, hashmap, set) 중에서 수차로 표시됩니다.

이유가 있습니까? 불변의 대안이 있습니까?

답변

2

"이유 배열"과 같은 것은 없습니다. Reason은 OCaml에 대한 대체 구문이고 OCaml은 배열을 변경할 수 있습니다. 그러나 Reason은 일반적으로 JavaScript로 컴파일되는 BUckleScript 백엔드와 함께 사용됩니다. JavaScript에는 가변 배열도 있지만 그 이유는 약간 다릅니다.

  • OCaml의 적절한에서, 배열은 당신이 일반적으로 성능 프로파일, 배열의 특성을 할 때 사용되지만, 당신은 또한 매우 간단하고 상호 작용하기 쉬운 메모리 레이아웃을 사용할 수도 있습니다 다른 언어에서 온 것일뿐만 아니라 공유 주소 공간의 액세스 및 변형을 통해 하드웨어와 통신 할 수 있어야합니다.

  • 는 BuckleScript으로 직선 어레이 가변 것에 더하여 때문에 효과적으로 배열에서 동적 인 크기 및 JavaScript 어레이에 매핑. 여기에서도 일반적으로 JavaScript를 사용하여 성능 및 상호 운용에 사용하지만, 구현이 약간 다르므로 성능 특성이 미묘하게 다릅니다. 두 경우 모두

, 당신이 원하는 경우에 뭔가 배열과 같은 있지만 Immutable.re's Vector 같은, 당신은 일반적으로 목록을 사용 싶지만, 다른 옵션도있다 불변.

OCaml이 표준 라이브러리에 불변의 배열 데이터 형식을 포함하지 않는 이유를 묻는 것이 좋습니다. 아무도 확실한 답을 줄 수 있을지 확신 할 수는 없지만, 충분히 요구되지 않았을 가능성이 있습니다. 왜냐하면 list는 불변의 배열과 같은 것을 잘 처리하기 때문일 것입니다.

+0

감사합니다. OCaml이 표준 라이브러리에 불변의 배열 데이터 타입을 포함하지 않는 이유는 무엇이겠습니까? – balajeerc

관련 문제