2023-2학기/프로그래밍언어
[프언] #16. Procedure Overloading and Parametric Polymorphism
AlriC
2023. 12. 13. 16:10
Type Annotation을 사용할 때, 일반적인 방법으로는 Polymorphic Procedure를 사용할 수 없습니다. 변수의 Type이 고정되어 있기 때문이죠. Polymerphic Procedure를 사용하기 위해서, 함수가 실제로 호출될 때 Type을 정해주는 방식을 사용합니다. 이를 Type Abstraction이라고 합니다.
let f = proc[A](x: A) (x 1) in ...
예시를 통해 좀 더 설명해 보겠습니다.
let f = typeAbst[A] (
proc(a: A) a
}
in (
if (f[bool](true)) f[int](11)
else f[int](12)
)
이 코드에서 f는 어떤 값을 받아 그 값을 그대로 출력하는 프로시져입니다. 이 프로시져의 타입은 이 프로시져가 호출될 때 결정됩니다. 이를 도입한 Semantic은 아래와 같습니다.
감사합니다.
이 글은 컴퓨터공학과 학부생이 개인 공부 목적으로 작성한 글이므로, 부정확하거나 틀린 내용이 있을 수 있으니 참고용으로만 봐주시면 좋겠습니다. 레퍼런스 및 글에 대한 기본적인 정보는 이 글을 참고해 주세요.