# 『りあクト!①言語・環境編』 ## 第3章 関数型プログラミングでいこう ### 3-1. 関数型プログラミングは何がうれしい? - 定義 参照透過的な関数を組み合わせて問題を解決する、宣言型のプログラミングのスタイル - 参照透過性 同じ入力に対して同じ作用と同じ出力が保証されていること。 - 宣言型プログラミング(Declarative Programming) 出力の性質・あるべき状態を宣言することでプログラミングを構成する ex)SQL ↔命令型プログラミング(Imperative Programming) 最終的な出力を得るために状態を変化させる連続した命令文によってプログラミングを構成する ex)手続き型のプログラミング言語。c、Goなど - 特徴 | | 命令型 | 宣言型 | | -------- | -------- | -------- | | 可変性 | Mutablity | Immutablity | | 主要な要素 | 文 | 式 | - 関数型言語である条件 - 文でなく式が主役 - 第一級関数をサポートしている 関数がその他の変数と同様に扱われる場合、その関数を第一級関数と呼ぶ。 たとえば関数を他の関数の引数として渡したり、他の関数から返却したり、変数の値として代入することができる [First\-class Function \(第一級関数\) \- MDN Web Docs 用語集: ウェブ関連用語の定義 \| MDN](https://developer.mozilla.org/ja/docs/Glossary/First-class_Function) ### 3-2. コレクションの反復処理 #### 3-2-1. 配列の反復処理 - 代表的な破壊的メソッドはsort()とreverse() - 元の値を変更せずに破壊的メソッドを使う方法 slice()か\[...Origin]で配列をコピーし、それに破壊的メソッドを適用する #### 3-2-2. オブジェクトの反復処理 - 関数型で書くため、entries()で配列を作ってメソッドチェーンでつなぐ ### 3-3. JavaScript で本格関数型プログラミング #### 3-3-1. あらためて関数型プログラミングとは何か - 関数型プログラミングのパラダイムで主に行われること - 名前を持たないその場限りの関数(無名関数)を定義できる - 変数やデータ構造の値として関数を設定する - 関数に引数として関数を渡したり、その戻り値に関数を設定できる(高階関数) - 関数に特定の引数を固定した新しい関数を作ることができる(部分適用) - 複数の高階関数を合成してひとつの関数にできる(関数合成) #### 3-3-2. 高階関数 #### 3-3-3. カリー化と関数の部分適用 #### 3-3-4. 閉じ込められたクロージャの秘密 ### 3-4. 非同期処理と例外処理 #### 3-4-1. Promise で非同期処理を扱う #### 3-4-2. async と await #### 3-4-3. JavaScript の例外処理
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up