의 성능 특성 분류하고 유형 시스템 만들 저명 가능한 것 같다 유형(예 : "직렬 액세스의 경우 빠름 / 느린 속도, 임의 액세스의 경우 빠름 / 느린 속도", "메모리 효율적 / 비효율적") 이러한 특성은보다 구체적인 형식이 상속 된 방식으로 계층 구조에 배치되는 추상 형식 일 수 있습니다. 그러나 이러한 유형을 사용하는 모든 프로그램의 성능은 실제로 사용 / 액세스되는 방식에 따라 달라 지므로 유형 시스템이 프로그램 자체에 대한 설명을 작성하려면 해당 유형의 사용 (액세스)이 유형으로 표시되어야합니다. 이는 내장 된 제어 구조 (예 : for / while 루프)를 사용하지 않고 대신이를 구현하는 유형을 사용한다는 의미이므로 계층은 추상 직렬 액세스 유형과 하위 목록 직렬 액세스, 트리 직렬을 가질 수 있습니다. -액세스 유형 등사용 효율성은 이러한 유형을 서로 조합하여 적용함으로써 적어도 부분적으로 표현 될 수 있습니다.
제어 구조가 거의없는 Haskell과 같은 기능적 언어에서 이것은 상당히 실용 적이고 시행 가능한 것으로 보입니다 . 그러나 Java에서는 이러한 시스템을 달성하기가 훨씬 어려워 보입니다 ( 결과의 시행 가능성 / 신뢰성에서와 같이 구현 에서는 그리 많지 않습니다 ).
Haskell은 이미 우리가 얼마나 많은 프로그램이 순수한지를 명확하게 진술 할 수있게 해주 며 밀폐 된 박스 내에서 특정 활동을 제한하는 방법을 제공합니다. Haskell의 병렬 처리 / 동시성 은 유형 시스템을 통해 구현 되므로 이미 원하는 방식으로 진행되고 있다고 주장 할 수 있습니다. 대조적으로, 명령형 언어 (Java와 같이 정적으로 유형이 지정된 언어조차도)는 코더에게 이것에 대한 시도를 전복시키는 많은 방법을 제공합니다.
if condition then expensive_operation else cheap_operation
하시겠습니까?