名前的型と構造的型
型
とは
変数
に付与されたメタ情報である
このメタ情報をどのように区別するか?という課題には2つのアプローチがある
名前的型
型に名前をつけ、名前によって型の相違を判断する
名前が異なるものには
互換性
がない
Java
や
C++
などで採用されている
構造的型
型の構造によって相違を判断する
型理論の研究においてはこちらが主流らしい
Haskell
や
TypeScript
など
/nishio/名前的型と構造的型の勘違いによる実話