시몬은 기본적으로 확장 관점에서 정확합니다. 우리는 현대 기능 언어의 의미가 무엇인지 잘 알고 있으며, 실제로 서로에 대해 상대적으로 작은 변형입니다. 각각은 모나드 금속 언어로 약간 다른 번역을 나타냅니다. Scheme과 같은 언어 (일류 제어를 사용하는 동적 형식의 고차원 명령 언어)조차도 ML 및 Haskell과 매우 유사한 의미를 갖습니다.
V
그러나 현대적인 유형의 기능 언어를 해석하기에 적합한 범주에 도달하려면 상황이 상당히 무섭습니다. 기본적으로,이 영역에 대해 초고도-풍부한 부분 동등성 범주를 구성하게됩니다. (예를 들어, Birkedal, Stovring 및 Thamsborg의 "파라 메트릭 다형성, 일반 참조 및 재귀 유형의 재분석 가능성 의미론"을 참조하십시오.) 운영 의미론을 선호하는 사람들은이 항목을 단계별 색인 논리 관계로 알고 있습니다. 예를 들어 Ahmed, Dreyer 및 Rossberg의 "국가 별 표현 독립성"을 참조하십시오. 어느 쪽이든, 사용 된 기술은 비교적 새롭습니다.
a -> b
⟨ ⟩ → T⟨ B ⟩⟨ ⟩ → ⟨ B ⟩티( A )⟨ ⟩a
→
방정식 이론이 진행되는 한, 이들 언어는 같은 언어의 약간 다른 부분 집합으로의 번역에 의해 설명 될 수 있기 때문에, 그것들을 서로의 구문 변형이라고 부르는 것은 전적으로 공평합니다.
ML과 Haskell의 느낌 차이는 실제로 두 언어의 강렬한 속성, 즉 실행 시간과 메모리 소비에서 발생합니다. ML은 이름 별 실제 언어와 같이 구성 성능 모델 (즉, 프로그램의 시간 / 공간 비용을 하위 용어의 시간 / 공간 비용에서 계산할 수 있음)을 가지고 있습니다. 실제 Haskell은 필요에 따라 호출 방식으로 구현되며 결과적으로 성능이 구성되지 않습니다. 변수에 바인딩 된 표현식이 평가하는 데 걸리는 시간은 이전에 사용되었는지 여부에 따라 다릅니다. 이것은 위에서 언급 한 의미론에서 모델링되지 않았습니다.
강렬한 속성을 더 심각하게 받아들이려면 ML과 Haskell이 더 심각한 차이점을 보이기 시작합니다. 아마도 그것들에 대한 일반적인 금속 언어를 고안하는 것이 가능할 수도 있지만, 유형에 대한 해석은 초점 에 대한 증명 이론적 아이디어와 관련하여 훨씬 체계적인 방식으로 다를 것입니다 . 이것에 대해 배우기에 좋은 곳은 Noam Zeilberger의 PhD 논문입니다.