Haskell은“일반적인 기능”이라는 개념을 가지고 있는데, 이는 일반적인 lisp와 공통점을 가진 경험이없는 일반적인 lisp와 비슷한 점이 있습니다. 이것은 to_string
모든 유형의 문자열 표현을 정의하는 일반 기능을 정의 할 수 있음을 의미합니다 . 물론 특수한 경우에는 시설을 정의해야하지만 to_string
서명이 인 함수가 α → string
있습니다.
OCaml과 마찬가지로 Haskell에서 유형이 지워 집니까? 그렇다면 Haskell의“일반 기능”의 구현은 유형이 동적이므로 삭제되지 않는 일반적인 lisp의 구현과 어떻게 다릅니 까?
구현 세부 사항은 컴파일러마다 다르지만 대부분 또는 모든 구현에 공통적 인 조항이있을 수 있음을 이해합니다.
a -> String
. 과 같은 유형 제약 조건이있을 가능성이 큽니다Show a => a -> String
.