一部で普及はしています。分野が違うということです。いった分野で効力を発揮します。オブジェクトと呼ばれる機能の集まりの部品を使ってプログラムを構成します。いいようになっています。エンジンがかかります。エンジンにライターで自分で点火するわけじゃありません。エンジンの仕組みを知っているわけでもありません。自分で「エンジンをかける」メソッドを呼び出すなどして処理を行います。「止まる振る舞い(メソッド)」など。"エンジンかかんないよ。これをオブジェクト指向では「インターフェース」のメソッドで表現します。車のメーカーによって操作の仕方が違ったら困りますよね。同じ使い方ができるわけです。運転の仕方がわかりませんよね。場合、インターフェースで表現できます。~でも中身をおなじように書いたとして。//トヨタ車クラスの86インスタンス(オブジェクト)を作ります。startEngine()が実行され、エンジンがかかります。run()が実行され、車が走ります。//日産車クラスのZ32インスタンス(オブジェクト)を作ります。startEngine()が実行され、エンジンがかかります。ICarは車インタフェースなので、操作方法だけを定義します。運転する人はそんなことは知らなくてもどの車も運転できます。ハンドルやアクセル、ブレーキなどの操作方法が同じだからです。「インタフェース」はなぜ必要なのか、それは使っていくうちにわかっていくと思います。いろいろな言語機能の要素があります。詳細な説明が必要であれば、別途機会を設けます。C言語の関数とは違います。ような式、あるいは関数を意味します。・関数型言語はラムダ計算の概念を使ってプログラムを記述します。これは引数をxとし、x+2の計算を行うという表記になります。・関数は値であり、関数型言語では同列に扱います。いった使い方をします。このような関数のことを、高階関数と呼びます。・関数型言語では、副作用のないプログラミングを基本とします。常に結果が4になります。状態によって変わります。C言語の関数mallocなどにしても、確保されるメモリアドレスの値は毎回変わります。これを、「副作用がある」状態といいます。関数型言語では、副作用のないプログラミングをするというのは前述のとおり。これは関数だけでなく、変数にも当てはまります。変数も、一度設定したら後から変更はできないということです。グローバル変数なども使いません。この副作用がない関数や式の状態を、「参照透過性(参照透明性)」といいます。「副作用のない」処理がどれだけあるのでしょう。プログラムを作ったことのある人は自分のソースコードを見てみてください。副作用だらけだと思います。参照透過性は以下のメリットをもたらします。複数の細かい処理に分けて同時に実行しても、結果が変わりません。並列実行が可能ということです。これは近年増えてきたマルチコアCPUを効率的に利用できることを意味します。分散コンピューティングにも適しています。※並列:複数のCPU(コア)で別々の処理を同時に行うこと。遅らせて実行することが可能です。パソコンでもスマホでも、CPU(中央演算処理装置)というものがのっかってます。人間で言えば、頭脳にあたる機械です。複数のCPUが入っているということです。していくだけでも性能が上がっていきました。昔僕が使っていたパソコンのCPUは16MHzでした。今じゃ2GHz、3GHzは普通。2GHzは2048MHzですから、128倍。なってしまっていました。消費電力も増大していきます。頭打ちになってしまったということです。気にしないでください。CPU、リーク電流、半導体、トンネル効果なんかでググってください。処理速度UPができなくなりました。4人でやれば早く終わるよね、って感じ。ルチコアの構成になっています。4つあっても1つしか使われません。3人は遊んでいるわけですよ。参照透過性に以下のメリットがあることは前述のとおり。