カテゴリー:関数型言語
-
【関数型言語】「モナド」とは?
09.04
モナドとは? 高階関数を使ってコンテキストをカプセル化する。 IOモナド 副作用の根源である入出力をIOモナドでカプセル化する。 …
-
【関数型言語】「参照透過性」を破壊するものと対策
09.03
基本的に関数型言語では参照透過性を保つことが求められます。 破壊的メソッドを使う(メモリ上のデータが変更される) 例えば、配列に備わっているpushメソッドなどはそれです。 変数に代入すること 1度関数を呼んで、引数に別の値を代入し…
-
【関数型言語】「カリー化」とは?
09.03
カリー化された関数とは? カリー化された関数はただ一つの引数しか取らない。 1つの引数しか取らない別の関数を返す。 高階関数の一種 カリー化のメリット ただ一つしか引数を取らないので、関数同士を組み合わせる場面…
-
【関数型言語】特徴
09.03
関数型プログラミングは以下二つの特徴があります。 ファーストクラスオブジェクトとして関数を定義する。 参照透過性がある。 ファーストクラスオブジェクトとしての関数 ファーストクラスオブジェクトとは? 計算の対象とな…
-
【関数型言語】「計算モデル」の種類
08.29
機械が保持している計算モデルは3つのモデルがあります。 命令型モデル アランチューリングが考案した。JavaやCなどで採用される一般的なモデル、「計算」とは「命令を実行する」こと。 命令 計算機の状態を変更する処理のこと。例をあげれ…
-
【プログラミング】パラダイム
08.29
手続き型 プログラムとは機械の操作の記述だ。 オブジェクト指向 プログラムとはオブジェクト間のメッセージのやり取りだ。手続き型に比べて抽象化されている。 コード同士の依存関係をうまく管理して変更に強くなる。 DDDなどの設計手法を…