AI活用の教科書
バックエンド開発ふつう3分で読了

無名関数

Anonymous Functionむめいかんすう

ひとことで言うと

名前を付けず、必要な場所にその場で書いて使う小さな関数のことです。

📖 もうちょい詳しく

何が新しいの?

ふつう、関数には名前を付けて、その名前で呼び出して使います。でも、たった一度しか使わない短い処理にまで、いちいち名前を考えるのは少し面倒です。そこで生まれたのが「無名関数」です。名前を付けないまま、使いたいその場所に直接書ける関数のことを指します。「ラムダ式」と呼ばれることもあります。

どうやって動いてるの?

無名関数は、名前がないだけで、ふつうの関数と同じように「入力を受け取り、処理して、結果を返す」しくみで動きます。多くのプログラミング言語では、x => x * 2(JavaScript)や lambda x: x * 2(Python)のように、短い書き方が用意されています。名前がないので、変数に入れて持ち運んだり、別の関数にそのまま渡したりして使います。

何ができるの?

よくあるのは、リストの中身を一つずつ加工したり、条件で絞り込んだりする場面です。「この処理だけやってほしい」という短い指示を、その場でサッと書いて渡せます。コードが行ったり来たりせず、読む人が「ここで何をしているか」を近くで確認できるのが利点です。

🌱 身近なたとえ

付箋(ふせん)のメモで例えると分かりやすいです。何度も使う連絡先は、住所録にきちんと名前を付けて登録します。でも「牛乳を買う」くらいの一度きりの用事なら、付箋にその場で書いて貼るだけで十分です。無名関数も、使い捨ての小さな処理を、わざわざ名前付きで登録せずにその場に書くイメージです。

✅ まず覚えるポイント

  • 名前を付けずに、使う場所へ直接書く小さな関数です。
  • 「ラムダ式」と呼ばれることもあります(ほぼ同じ意味です)。
  • 一度だけ使う短い処理に向いています。
  • 別の関数へ「渡す」用途でよく使われます。
  • 変数に入れて、あとから呼び出すこともできます。

🧭 よくある勘違い

名前がないと、あとで呼び出せないの?

そのままでは名前で呼べませんが、変数に入れておけば、その変数名を通して何度でも呼び出せます。また、別の関数へ「引数」として渡し、渡された側がその場で実行する使い方も一般的です。

ふつうの関数と性能が違うの?

基本的な動きは同じで、名前があるかないかの違いです。ただ、何度も使い回す処理や、長くて複雑な処理は、名前を付けたほうが読みやすくなることが多いです。無名関数は「短い・その場限り」が得意分野だと考えると整理しやすいです。

🧩 関連して覚えると楽な言葉

  • 関数: 入力を受け取り処理して結果を返す、プログラムの基本部品です。無名関数はその「名前なし版」にあたります。
  • コールバック: 別の関数に渡して、あとで呼んでもらう関数です。無名関数を渡す形でよく登場します。
  • クロージャ: 関数が、自分の外側にある変数を覚えたまま持ち運ぶしくみです。無名関数と組み合わせて使われることが多いです。
  • 配列: データを順番に並べた入れ物です。中身を一つずつ加工するときに無名関数をよく渡します。

🏁 ひとことでまとめ

その場限りの短い処理を、名前を考えずにサッと書ける道具が無名関数です。「使い捨ての小さな関数」とおさえておくと、いろいろな場面で見分けがつきます。