JavaScript で学ぶ関数型プログラミング (ES5)
マープル(http://www.marpple.com)のCTOユ・インドンが教えてくれる関数型プログラミングの講座です。 関数型プログラミングでライブラリを直接作成し、関数型プログラミングのパラダイムとコーディングの楽しさを感じることができます。
受講生 13,495名
難易度 初級
受講期間 無制限

Kotlinで書かれた『マルチパラダイムプログラミング』の付録コンテンツを無料で公開します。
『コトリンマルチパラダイムイテレーション』は『マルチパラダイムプログラミング』の付録で、本書の一部内容をコトリン言語に特化して解き出した資料です。マルチパラダイムプログラミングは、特定の言語に限定されない言語に依存しない概念であり、現代のほとんどのプログラミング言語に適用できる方法論および技術です。
見に行く: https://github.com/marpple/kotlin-multi-paradigm-iteration
現代のプログラミング言語は、イテレーションについてオブジェクト指向、関数型、命令型の概念を統合し、それを有機的に動作させるための規約を提供します。 『マルチパラダイムプログラミング』では、タイプスクリプトを中心に関数型・コマンド型・リストプロセッシング・オブジェクト指向プログラミングを組み合わせて活用する事例を調べました。今回は、マルチパラダイム言語であるコトリン(Kotlin)のマルチパラダイムイタレーションを中心に、マルチパラダイムプログラミング言語の応用能力をさらに拡張していきたいと思います。
コトリンはマルチパラダイムプログラミング言語です。オライリーメディアの副社長であり、いくつかの技術書の著者であるマイク・ルキデスは最近、彼の記事で、「私たちは関数型、オブジェクト指向、命令型パラダイムを提供するマルチパラダイム言語を効率的に使用する方法について学ぶべきだ」とし、「多くのツールが改善され、今、私たちはどのようによく使用するかを学びました。中にあったパラダイムを混ぜなければならない時だ」と言いました。
このような環境が整った今、どちらかのパラダイムだけを使うのは、多分大きな機会を逃すことかもしれません。私たちが解決しなければならない問題の中には、関数型で解決することが優勢な場合があり、オブジェクト指向プログラミングで解決することがより優勢な場合もあります。プログラマは、もはや関数型が良いのか、オブジェクト指向が良いのか、静的型が良いのか、動的型が良いのかを議論する必要はありません。言語を作成し、標準を定義する団体と企業は、すでに1つの言語とプラットフォームで複数のパラダイムをサポートするようにしてきました。
コトリンは、Iterable、Iterator、Sequence、Flow、Channelなどの構造を通じて、遅延評価と非同期コードを洗練し、柔軟に扱えることが特徴です。ここに拡張関数と豊富な標準ライブラリヘルパー関数を組み合わせて、単純なリスト巡回以上のさまざまなパターンをより簡潔に表現できます。これにより、別のライブラリなしで高レベルのリスト処理を実現できます。コトリン特有の精巧に噛み合った構造と柔軟な拡張性、豊富な利便性は、言語を使用する開発者に多くのインスピレーションと楽しさを与えます。ところで、もしこのような機能を十分に活用できていなければ、コトリンプログラミングが与える楽しさを完全に味わっていないのかもしれません。
『マルチパラダイムプログラミング』の付録コンテンツである『コトリンマルチパラダイムイテレーション』では、『マルチパラダイムプログラミング』の一部の内容を、コトリンイテラブル、イテレータ、シーケンスをオブジェクト指向・関数型・コマンド型パラダイムを連結する観点から解きます。オブジェクト指向に設計されたイテレータとコマンドスタイルで書くシーケンスの関係を調べ、関数型拡張関数でシーケンスとイテレータであるオブジェクトを扱うコードを見てください。また、関数型拡張関数で演算を積んだシーケンスを命令型として扱い、再び関数型に切り替えながら、コトリンイテレーションが持つパラダイム切り替え能力を確認してみます。
また、シーケンスとイテレータの遅延評価を深く把握し、LISPの哲学を借用してコードとデータを融合する視点を探求し、これらの技術の実践応用力を高める内容も取り上げます。また、柔軟で堅牢なコード構造を設計し、効率的で正確かつ安全に動作するコードを作成する方法を探求します。これにより、マルチパラダイム言語コトリンの多様な可能性を実感し、ソフトウェア工学とプログラミングの楽しみを一層深く味わえるきっかけになることを願っています。
無料




