Hindley-Milner 형식 유추 ( 다형성이 있는 단순 형식의 미적분)에는 형식 유추가 결정 가능 하다는 것이 잘 알려져 있습니다. 주석없이 모든 프로그램의 기본 형식을 재구성 할 수 있습니다.λλ\lambda Haskell 스타일 유형 클래스를 추가하면이 결정 성을 유지하는 것처럼 보이지만 추가를 추가하면 주석이없는 추론을 만들 수 없습니다 (유형 군, GADT, 종속 유형, Rank-N …
나는 약 읽고 있어요 힌들리 - 밀너 입력 알고리즘 구현을 작성하고, 그 볼 동안, 당신은 항상 같은 인수가 최종 형태를 결정하는 하나의 원자 유형 또는 유형, 얻을 것이다 긴 모든 변수가 바인딩되는만큼, t1 -> t1또는 (t1 -> t2) -> (t1 -> t2)어디서 t1그리고 t2유형 변수입니다. 나는 당신이 t1 -> t2또는 …
Java에서는 변수를 다운 캐스트하기 위해 명시 적으로 캐스트해야합니다. public class Fruit{} // parent class public class Apple extends Fruit{} // child class public static void main(String args[]) { // An implicit upcast Fruit parent = new Apple(); // An explicit downcast to Apple Apple child = (Apple)parent; } java가 형식 …
직장에서 나는 동적 언어에 대한 몇 가지 유형 정보를 유추하는 임무를 맡았습니다. 다음 let과 같이 일련의 명령문을 중첩 된 표현식 으로 다시 작성합니다 . return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z …
OCaml과 같은 기능적 언어에서 형식 유추 비용이 매우 높을 수 있다는 점에 주목했습니다. 청구 범위는 각 표현에 대해 대응하는 유형의 길이가 표현의 길이에 대해 지수가되도록 일련의 표현이 존재한다는 것이다. 아래 순서를 고안했습니다. 내 질문은 : 동일한 유형을 달성하는 더 간결한 표현이있는 시퀀스를 알고 있습니까? # fun a -> a;; - …
나는 Hindley-Milner 유형의 추론 시스템 이 작동 하는 작은 람다 미적분학 컴파일러에서 일하고 있으며 이제는 링크 된 코드가 아닌 재귀 렛을 지원 하므로 Turing을 완성하기에 충분해야합니다 . 이제 문제는 목록을 지원하는 방법 또는 이미 목록을 지원하는지 여부를 알지 못하므로 인코딩 방법을 찾아야한다는 것입니다. 형식 시스템에 새 규칙을 추가하지 않고도 규칙을 …
최근 질문에 대한 @Babou의 대답 은 한 번에 데이터 흐름 분석 의 동등성 (추론되거나 입증 될 수있는 사실과 추론 알고리즘을 실행하는 시간 복잡성)에 관한 논문을 읽은 것으로 생각 합니다. , 추상 해석 및 형식 유추 . 일부 하위 사례 (정방향 상황에 따른 절차 간 데이터 흐름 분석과 추상 해석 등)에서 …
개발중인 언어에 대한 형식 유추 알고리즘을 찾고 있지만 일반적으로 다음 중 하나이므로 내 요구에 맞는 것을 찾을 수 없습니다. La Haskell, 다형성, 임시 과부하 없음 a-임시 오버로드가 있지만 기능이 단일 한 C ++ (자동) 특히 내 유형 시스템은 (단순화)입니다 (저는 Haskellish 구문을 사용하고 있지만 언어에 구애받지 않습니다). data Type = …