1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

関数型言語とは何が代表的ですか?使えるものになれますか?

Last updated at Posted at 2025-09-11

最も代表的な関数型言語の1つは「Lambda」だと思います。

main-qimg-fe3c09070002eda3f40167c07d6bb2d3.jpg
「…便利なものは使えばよいかと」(画像は Bing Image Creatorで生成)

実はLambda(ラムダ式)は関数型言語から派生したれっきとした言語です。 C++、C#、Python、Kotlin、Swift、Javaなどさまざまな言語の中で省略記法として使えます。正規表現みたいな扱いですね。

対して純粋な関数型言語は、言語としてのシェアを伸ばす見込みは正直ありません。 手続き型言語の方が効率よく書けるサービスが多く、成果を上げてもすぐに手続き型言語に吸収されてしまう状況が今後も続くでしょう。Lambdaはまさに「吸収された成果」の一つです。

なお、[1] 実行順が非同期で、[2] 関数同士が互いに干渉しないという関数型言語でよく強調される特徴は、現代のWeb開発の世界では言語に関係なく当たり前の現象です。Googleなんか1つの検索要求ごとに数千台のサーバーが非同期で動いてます。関数型言語ではそれが関数単位で発生するというだけのことです。一般に非同期プログラミングは難易度がかなり高いので、今後も関数型言語だからという理由で利用する人は少数派 でしょう。

ちなみに、 JavaScriptは関数型言語の思想をかなり取り入れた言語だと思います。JavaScriptでは多くの関数が勝手に非同期処理を始めるため、Promiseシステム(async/await)を使用して関数単位で同期/非同期を制御します。関数型言語的な挙動が自動化しつつ様々なところに浸透していて奥の深い言語です。ES6以降の関数の省略記法もまさにLambda式そのもので、案外一番身近な関数型言語と言えるかもしれませんね。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?