Haskellのジェネリックプログラミングとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > Haskellのジェネリックプログラミングの意味・解説 

Haskellのジェネリックプログラミング

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

ジェネリックプログラミング」の記事における「Haskellのジェネリックプログラミング」の解説

Haskell言語にはパラメータ化された型 (parameterized types)、パラメータ多相 (parametric polymorphism)、そしてJavaのジェネリクスC++のテンプレート両方似たプログラミングスタイルサポートする型クラス (type classes) がある。Haskellプログラムではこれらの構文様々なところで利用しており、避けることはかなり難しい。Haskellまた、さらなるジェネリック性と、多態提供する上の再利用性を目指すようにプログラマー言語開発者奮起させる、さらに独特なジェネリックプログラミング機能がある。 Haskell6つ事前定義され型クラス同一性比較できるEqという型と、値を文字列変換できるShowという型を含む)は導出インスタンス (derived instances) をサポートしている特別なプロパティを持つ。プログラマー新しい型を定義するということはクラスインスタンス宣言するときに、普通であれば必要なクラスメソッドの実装提供することなく、この型がこれらの特別型クラスインスタンスとなることを明示できるということである。全ての必要なメソッドは型の構造基づいて導出(つまり自動的に生成)される。 例として、下記二分木型の宣言はこれがEqShowクラスインスタンスになることを示している。 data BinTree a = Leaf a | Node (BinTree a) a (Bintree a) deriving (Eq, Show) Tがそれらの演算子自分サポートしているのであれば任意の型のBinTree T形式のために比較関数 (==)文字列表現関数 (show) が自動的に定義されるEqShow導出インスタンスへのサポートは、それらのメソッドである==とshowを、パラメーター的な多態関数とは質的に異なジェネリックにする。これらの"関数"(より正確には型でインデックス付けられた (type-indexed) 関数ファミリー)はたくさんの異なる型の値を受け入れることができ、各引数の型によってそれらは異な動作をするが、新しい型へのサポート追加するためにわずかな作業が必要とされるRalf Hinze氏 (2004) は、あるプログラミングテクニックによりユーザー定義型のクラスに対して同様の結果達成できることを示した。彼以外の多く研究者はこれと、Haskell流れとは違う種類ジェネリック性やHaskell拡張下記参照)に対す取り組み提案していた。

※この「Haskellのジェネリックプログラミング」の解説は、「ジェネリックプログラミング」の解説の一部です。
「Haskellのジェネリックプログラミング」を含む「ジェネリックプログラミング」の記事については、「ジェネリックプログラミング」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

「Haskellのジェネリックプログラミング」の関連用語

Haskellのジェネリックプログラミングのお隣キーワード
検索ランキング

   

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



Haskellのジェネリックプログラミングのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS