同型再帰型とは? わかりやすく解説

同型再帰型

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/17 16:09 UTC 版)

再帰データ型」の記事における「同型再帰型」の解説

同型再帰型では、再帰型 μ α . T {\displaystyle \mu \alpha .T} とその展開結果である T [ μ α . T / α ] {\displaystyle T[\mu \alpha .T/\alpha ]} は別の型であり、特殊な構成 foldunfold識別され、これらの間で同型写像構成する正確に記せば、 fold : T [ μ α . T / α ] → μ α . T {\displaystyle {\mbox{fold}}:T[\mu \alpha .T/\alpha ]\to \mu \alpha .T} と unfold : μ α . T → T [ μ α . T / α ] {\displaystyle {\mbox{unfold}}:\mu \alpha .T\to T[\mu \alpha .T/\alpha ]} であり、これらは互いに逆関数である。 部分型付けにおいてよく使われる方法として Amber 規則があり、μX.S <: μY.T かどうか判定するにあたり、X <: Y という仮定置いた上で、S <: T であれば、μX.S <: μY.T とする、という判定方法である。Java構造的型システムではないが、分かりやすくするために Java表記方法を使うと、 class ListA { Integer value; ListA next;}class ListB { Object value; ListB next;} で、ListA <: ListB であるかの判定をするにあたり、X は ListA の内側再帰的使っている ListA を指し、Y は ListB の内側再帰的使っている ListB を指すので、X <: Y であるという仮定置いて残りvalue部分Integer <: Object なので、ListA <: ListB であると判定する方法である。再帰型同士しか比較しなく、再帰型内部利用している場合はそれを展開したりしないので、部分型付け判定有限時間で終わることが分かるAmber 規則出来ることは、概ね名前的型システムに近い。書籍型システム入門』の「21.11 同型再帰型の部分型付け」で解説されている。

※この「同型再帰型」の解説は、「再帰データ型」の解説の一部です。
「同型再帰型」を含む「再帰データ型」の記事については、「再帰データ型」の概要を参照ください。

ウィキペディア小見出し辞書の「同型再帰型」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「同型再帰型」の関連用語

同型再帰型のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



同型再帰型のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの再帰データ型 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS