応用的な手法とは何? わかりやすく解説 Weblio辞書

応用的な手法とは? わかりやすく解説

応用的な手法

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/01/06 04:20 UTC 版)

関数型プログラミング」の記事における「応用的な手法」の解説

ポイントフリースタイル 最初に解の集合となる候補生成し、それらの要素に対して1つもしくは複数)の解にたどり着くまで関数適用フィルタリング繰り返す手法は、関数型プログラミングでよく用いられるパターンである。 Haskell では、関数合成の二項演算子使ってポイントフリースタイルで関数定義することができる。関数をポイントフリースタイルで定義すると、データより関数目が行くようになり、どのようにデータ移り変わっていくかではなく、どんな関数合成してになっているということ意識が向くため、定義が読みやすく簡潔になることがある関数複雑になりすぎると、ポイントフリースタイルでは逆に可読性悪くなることもある。 モナド 詳細は「モナド (プログラミング)」を参照モナドは値と計算文脈で包むものだ」「モナドには三通りある―計算順序制御副作用制御コンテナとしてのそれ」「クライスリ圏モナドへのもう一つ基本視点だ」「モナド文脈の型である―文脈に値を注入し文脈内で関数適用する」「モナドは他の型を包むラッパー型である―内側の型を構造化し、内側の型の計算合成するモナド概ね、値を包んだコンテナ計算合成する仕組みイメージできる。コンテナはあくまで抽象的な概念であり、環境、状態、文脈とも解釈されるコンテナ副作用記録媒体としても扱われて、その中で得られた値をラッピングし、それは取り出され次の計算使える。値のコンテナ収納をここではunitと呼ぶ。unit: a->maとなる。maは[a]と読み替えてもよい。コンテナ入れ子にできるのでmmaや[[a]]にもなる。mmamaに、[[a]]を[a]に整理することをここではjoinと呼ぶ。join: m(ma)->maのようになるunitjoin組み合わせa ma mmaなどを内部揃えてmaにすることをここではflatmapと呼ぶ。 モナド土台一つクライスリ圏であり、関数f': a->bとunit融合したようなクライスリ射f: a->mbがあった。このa->mbunitma適用できるようにしたflatmapがモナド基本である。そこから値の構造化やその計算合成といった様々な拡張性生まれる。 それへの第1ステップは、クライスリ射の合成<=<: (b->mc)->(a->mb)->(a->mc)であり、これはjoin . unit (b->mc).(a->mb)とされる第2ステップは、<=<の(a->mb)をunit値にした拡張演算子=<<: (b->mc)->mb->mcである。これは(join . unit b->mc) mbとされる。この=<<の逆さ引数版が、本命のモナドflatmap>>=: mb->(b->mc)->mcになる。モナドflatmapはb->mcunitmb適用できて、その返り値次のflatmapの引数にして連結できるようにもなった。unitmambモナドと言われるモナド値の型は構造を持つ。上述コンテナ入れるだけのシンプル構造のa->ma付加モナドと言われるListモナドMaybeモナドがそれに当たる。コンテナ環境、状態、文脈といった抽象構造したものもある。例外モナドa->m(a+e)、Readerモナドa->(e->ma)、Writerモナドa->m(w×a)、状態モナドa->(s->m(a×s))、継続モナドa->((a->mr)->mr)などである。それらの抽象構造副作用封入し、また参照透過性維持する働きがある。

※この「応用的な手法」の解説は、「関数型プログラミング」の解説の一部です。
「応用的な手法」を含む「関数型プログラミング」の記事については、「関数型プログラミング」の概要を参照ください。

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



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

辞書ショートカット

すべての辞書の索引

応用的な手法のお隣キーワード
検索ランキング

   

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



応用的な手法のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2024 GRAS Group, Inc.RSS