【Erlang】ラムダ式の使い方と基本構文

Erlangでのラムダ式の使い方と基本構文

Erlangは関数型プログラミング言語であり、ラムダ式(無名関数)をサポートしています。ラムダ式は、関数を変数に代入したり、関数の引数として渡したりする際に便利です。この記事では、Erlangでのラムダ式の基本的な使い方と構文について解説します。

概要

Erlangのラムダ式は、

fun

キーワードを使って定義されます。ラムダ式は、関数名を持たずに直接式として使われる無名の関数です。一般的な関数と同様に、パラメータを取り、式を評価して結果を返すことができます。

この記事では、以下の内容について詳しく説明します。
1. ラムダ式の基本構文
2. ラムダ式の定義と使用方法
3. パターンマッチングとラムダ式
4. ラムダ式の利用例

それでは、順を追って各項目について詳しく見ていきましょう。

ラムダ式の基本構文

Erlangのラムダ式は以下のような基本的な構文を持ちます。


FunName = fun(Param1, Param2, ...) ->
    Expression
end.
  • fun

    キーワードでラムダ式の定義を開始します。

  • 引数(
    Param1, Param2, ...

    )はカンマで区切って列挙します。

  • ->

    の後に、ラムダ式が評価する式(

    Expression

    )を記述します。

  • end

    でラムダ式の定義を終了します。

ラムダ式の定義と使用方法

ラムダ式を定義する際は、変数に代入して利用することが一般的です。以下は、ラムダ式を変数に代入し、その変数を使ってラムダ式を呼び出す例です。


% ラムダ式の定義
Double = fun(X) -> X * 2 end.

% ラムダ式の使用
Result = Double(5). % Resultには10が格納される

この例では、

Double

という変数にラムダ式が代入され、その後で変数

Double

を関数のように呼び出しています。

Double(5)

の結果として

10

が得られます。

パターンマッチングとラムダ式

Erlangでは、パターンマッチングを用いてラムダ式内での条件分岐が可能です。以下の例では、引数の値によって異なる式が評価されます。


% ラムダ式の定義
Greet = fun("Alice") -> "Hello, Alice!";
             ("Bob") -> "Hello, Bob!";
             (_) -> "Hello, stranger"
       end.

% ラムダ式の使用
Greet("Alice"). % "Hello, Alice!"が返される
Greet("Bob").   % "Hello, Bob!"が返される
Greet("Eve").   % "Hello, stranger"が返される

この例では、引数によって異なる振る舞いをするラムダ式が定義されています。引数が

"Alice"

の場合には

"Hello, Alice!"

"Bob"

の場合には

"Hello, Bob!"

、それ以外の場合には

"Hello, stranger"

が返されます。

ラムダ式の利用例

ラムダ式は、Erlangでのさまざまな場面で活用されます。例えば、リストの各要素に対して特定の処理を適用する場合にラムダ式が利用されます。以下は、リストの各要素を2倍にする例です。


% ラムダ式をリストの各要素に適用する例
List = [1, 2, 3, 4, 5],
DoubledList = lists:map(fun(X) -> X * 2 end, List).
% DoubledListには[2, 4, 6, 8, 10]が格納される

この例では、

lists:map

関数を使ってリスト

List

の各要素に対してラムダ式を適用し、新しいリスト

DoubledList

を生成しています。

まとめ

この記事では、Erlangでのラムダ式の基本的な使い方と構文について学びました。ラムダ式は、関数型プログラミング言語の特徴であり、Erlangにおいても非常に重要な概念です。ラムダ式を活用することで、柔軟性のあるプログラミングを実現することができます。

以上で、Erlangでのラムダ式の使い方と基本構文についての解説を終わります。これを参考にして、Erlangでの関数型プログラミングのスキルをさらに向上させてください。

よくある質問

  • Q. ラムダ式とは何ですか?
  • A: ラムダ式は、匿名関数を表現するための式です。Erlangでは、関数を値として扱うことができ、ラムダ式を使って関数を定義することができます。

  • Q. ラムダ式を使用するメリットは何ですか?

  • A: ラムダ式を使用することで、関数を簡潔に定義することができます。また、高階関数を扱う際にラムダ式を使うことで、コードの見通しを良くすることができます。

  • Q. ラムダ式の基本構文はどのようになっていますか?

  • A: ラムダ式の基本構文は以下のようになります。

    erlang
      Fun = fun(引数1, 引数2, ...) -> 関数本体 end.
  • Q. ラムダ式をどのように呼び出しますか?

  • A: ラムダ式は、変数に代入して作成した後、その変数を関数のように呼び出すことができます。例えば、

    Fun(引数1, 引数2)

    のように呼び出します。

  • Q. ラムダ式を使ってどのようなことができますか?

  • A: ラムダ式を使うことで、簡潔な関数定義や高階関数の実装、コールバック関数の定義などが可能になります。
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x