サイト内検索

詳細検索

ヘルプ

セーフサーチについて

性的・暴力的に過激な表現が含まれる作品の表示を調整できる機能です。
ご利用当初は「セーフサーチ」が「ON」に設定されており、性的・暴力的に過激な表現が含まれる作品の表示が制限されています。
全ての作品を表示するためには「OFF」にしてご覧ください。
※セーフサーチを「OFF」にすると、アダルト認証ページで「はい」を選択した状態になります。
※セーフサーチを「OFF」から「ON」に戻すと、次ページの表示もしくはページ更新後に認証が入ります。

2月度:全品ポイント最大40倍(~2/25)

ポイント祭り!! 双葉社ポイント40倍(~2/28)

プログラミング言語 ランキング

プログラミング言語のランキングをご紹介します一覧を見る

前へ戻る

次に進む

目次

電子書籍

JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ(impress top gear)

JavaScript関数型プログラミング 複雑性を抑える発想と実践法を学ぶ

  • LuisAtencio/ 株式会社イディオマコムニカ 加藤大雄
    表紙
    序文
    本書について
    謝辞
    Part 1 発想の転換とキーコンセプト
    第1章 関数型で思考する
    1.1 関数型プログラミングを学ぶと役に立つのか?
    1.2 関数型プログラミングとは何か
    1.2.1 関数型プログラミングは宣言型である
    1.2.2 純粋関数と副作用問題
    1.2.3 参照透過性と代替性
    1.2.4 データの不変性を維持
    1.3 関数型プログラミングの利点
    1.3.1 タスクをシンプルな関数に分解する
    1.3.2 円滑なチェーンを使ってデータ処理
    1.3.3 非同期アプリケーションの複雑性に対処する
    1.4 まとめ
    第2章 関数型言語としてのJavaScript
    2.1 なぜJavaScriptなのか
    2.2 関数型プログラミングvs. オブジェクト指向プログラミング
    2.2.1 JavaScriptオブジェクトの状態管理/2.2.2 オブジェクトを値として扱う
    2.2.3 可動部分をディープフリーズ(再帰的にフリーズ)
    2.2.4 レンズを使ってオブジェクトグラフを操作
    2.3 関数
    2.3.1 第一級オブジェクトとしての関数
    2.3.2 高階関数
    2.3.3 関数呼び出しの方法
    2.3.4 関数メソッド
    2.4 クロージャとスコープ
    2.4.1 グローバルスコープの問題
    2.4.2 JavaScriptの関数スコープ
    2.4.3 擬似的なブロックスコープ
    2.4.4 クロージャの実践的な利用方法
    2.5 まとめ
    Part 2 関数型のデザインとコーディング
    第3章 データ構造の数を減らし、操作の数を増やす
    3.1 アプリケーションの制御フローを理解する
    3.2 メソッドチェーン
    3.3 関数チェーン
    3.3.1 ラムダ式を理解する
    3.3.2 データを_.mapを使って変換する
    3.3.3 _.reduceを使って結果を集める
    3.3.4 _.filterを使って不要な要素を除去する
    3.4 コードを把握する
    3.4.1 宣言型および遅延関数チェーン
    3.4.2 SQLライクなデータ:関数としてのデータ
    3.5 再帰的に考えることを学ぶ
    3.5.1 再帰とは何か/3.5.2 再帰的に考えるということ
    3.5.3 再帰的に定義されるデータ構造
    3.6 まとめ
    第4章 モジュール化によるコードの再利用
    4.1 メソッドチェーンと関数パイプライン
    4.1.1 メソッドをまとめてチェーンにする
    4.1.2 関数をパイプライン状に配置する
    4.2 互換性のある関数のための要件/4.2.1 型互換の関数
    4.2.2 関数とアリティ:タプルの場合
    4.3 カリー化された関数評価
    4.3.1 関数ファクトリをエミュレートする
    4.3.2 再利用可能な関数テンプレートを実装する
    4.4 部分適用とパラメータ束縛
    4.4.1 コア言語を拡張する
    4.4.2 遅延関数に束縛する
    4.5 関数パイプラインを合成する/4.5.1 HTMLウィジェットとの合成を理解する
    4.5.2 関数合成:記述を評価から分離する
    4.5.3 関数ライブラリによる合成
    4.5.4 純粋なコードと不純なコードを取り扱う
    4.5.5 ポイントフリープログラミングの紹介
    4.6 関数コンビネータを使ってフロー制御を管理する
    4.6.1 identity(Iコンビネータ)/4.6.2 tap(Kコンビネータ)
    4.6.3 alternation(ORコンビネータ)
    4.6.4 sequence(Sコンビネータ)
    4.6.5 fork(join)コンビネータ
    4.7 まとめ
    第5章 複雑性を抑えるデザインパターン
    5.1 命令型エラー処理の欠点
    5.1.1 try-catchによるエラー処理
    5.1.2 関数型プログラムで例外を投げない理由
    5.1.3 nullチェックの問題
    5.2 より優れたソリューション:ファンクター
    5.2.1 安全ではない値のラッピング
    5.2.2 ファンクターの詳細
    5.3 モナドを使った関数型エラー処理
    5.3.1 モナド:制御フローからデータフローへ
    5.3.2 MaybeモナドとEitherモナドによるエラー処理
    5.3.3 IOモナドを使用して外部リソースとやり取りする
    5.4 モナドチェーンと合成
    ほか