문제

haskell https의 토론의 맥락에서 : //stackoverflow.com/questions/62509788/the-intuition-behind-the-definition-of-the-co-reader-monad

다형성 유형 $ (e \ to) \ $

에 대한 종결 구현이 없습니다.

$ ((e \ ~ a) \ ~ e $ 또는 유형의 함수의 함수를 가질 수 없었습니다. SPAN 클래스="수학 컨테이너"> $ (r \ ~ x) \ x $ 은 '구현 가능' '이 아닙니다.

이러한 유형은 STLC에서 잘 형성되어 있으며, 유형 형성 규칙을 사용하여 생성 할 수 있습니다. 그리고 $ \ lambda c _ {(((a \ to t) \ t t)와 같은이 모양의 람다 조건을 형성 할 수없는 이유는 보이지 않습니다. \, b_a $ 또는 $ \ lambda p_ {e \, a}. \, b_a $ .

문제는 무엇입니까? 특히 STLC의 컨텍스트에서 '종단 구현' '은 무엇입니까? 나는 이것이 $ (e \ to \ bot) \ to \ bot $ 이지만 누군가가 나를 위해 이것을 철자 할 수 있다면 고맙겠습니다.

도움이 되었습니까?

해결책

항상 은 자유 변수로 유형에 살고 있습니다. type $ \ tau $ 은 무료 가변 $ x_ \ tau $ . 유형의 "구현"에 대해 사람들이 말하는 경우, 자유 변수가없는 폐쇄 용어 을 의미합니다. 당신이 포기 한 예는 무료 변수, 즉 $ b_a $ 을 포함합니다.

순수한 단순한 $ \ λ $ - calculus는 미적분이 강하게 정규화된다는 의미에서 "종결"입니다. 그래서 당신이 받아들이는 모든 감축은 항상 (고유 한) 정상적인 양식으로 이어질 것입니다.

$ \ 람다 $ - 재귀 정의 (예 : haskell과 같은)로 확장 된 $ \ TAU $ 닫힌 용어, 예를 들어 Haskell에서 Type t

로 정의 된 a에 의해 거주됩니다.
a :: t
a = a
.

재귀 정의가되면 종료되지 않는 닫힌 조건을 쉽게 쓰지 않거나 정상적인 양식을 가지고 있지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top