ラムダ式とは? わかりやすく解説

無名関数

(ラムダ式 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/21 01:43 UTC 版)

プログラミング言語における無名関数英語: anonymous functionあるいはnameless function[1]とは、名前付けされずに定義された関数のことである。無名関数を表現するための方法には様々なものがあるが、近年[2]主流となっているのはラムダ式による記法である。無名関数を表現するリテラル式は、関数リテラル (function literal) とも呼ばれる。値がある場合は関数オブジェクトであるものが多い。


  1. ^ 「anonymous」は「匿名の」という意味も持つため、「anonymous function」は日本語で「匿名関数」と訳されることも多いが、「匿名」は(本当の)名前を匿(かく)すことを意味する。anonymous functionの「anonymous」は「名前がない」ということを意味しているので、ニュアンス的には「無名関数」のほうが適切な訳である。
  2. ^ “Introduction to Data Science in Python”, University of Michigan, https://www.coursera.org/learn/python-data-analysis 2018年6月13日閲覧。 
  3. ^ Anonymous function - HaskellWiki
  4. ^ 匿名関数 (C# プログラミング ガイド) | Microsoft Docs
  5. ^ マイクロソフトによるMSDN日本語版ドキュメントでは「匿名関数」「匿名メソッド」としているので、この節ではそれに従っている。「無名関数」と「匿名関数」とで技術的な違いがあるわけではない。匿名メソッド (C# プログラミング ガイド) | Microsoft Docs


「無名関数」の続きの解説一覧

ラムダ式

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/12 02:32 UTC 版)

統合言語クエリ」の記事における「ラムダ式」の解説

従来匿名メソッドに取って代わる構文として導入された。引数の型が省略できることや、式木に変換することができることで、自然にLINQ導入できるようにした。

※この「ラムダ式」の解説は、「統合言語クエリ」の解説の一部です。
「ラムダ式」を含む「統合言語クエリ」の記事については、「統合言語クエリ」の概要を参照ください。


ラムダ式

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/03 23:38 UTC 版)

C Sharp」の記事における「ラムダ式」の解説

ラムダ式が導入された。この名前はラムダ計算由来する。 以下の匿名メソッド // iを変数としてi+1返すメソッドdelegate (int i) { return i + 1; } は、ラムダ式を使って次のように記述できる: (int i) => i + 1; /* 式形式ラムダ *///或いは:(int i) => { return i + 1; }; /* ステートメント形式ラムダ */ ラムダ式は匿名メソッド同様に扱えるが、式形式ラムダExpression型として扱われ場合のみ匿名メソッドとして扱われず、コンパイラによって式木を構築するコード変換される匿名デリゲート実行前にコンパイルされたCIL保持するのに対し、式木はCIL実行時コンパイル可能であるDOMのような式の木構造そのもの保持する。これはLINQクエリSQLクエリなどに変換する際に役立つ。 以下は、3つの任意の名前の変数整数括弧、及び四則演算子のみで構成された式を逆ポーランド記法変換する汎用的コードである: public static string ToRPN(Expression<Func> expression){ return Parse((BinaryExpression) expression.Body).TrimEnd(' ');}private static string Parse(BinaryExpression expr){ string str = ""; if (expr.Left is BinaryExpression) { str += Parse((BinaryExpression) expr.Left); } else if (expr.Left is ParameterExpression) { str += ((ParameterExpression) expr.Left).Name + " "; } else if (expr.Left is ConstantExpression) { str += ((ConstantExpression) expr.Left).Value + " "; } if (expr.Right is BinaryExpression) { str += Parse((BinaryExpression) expr.Right); } else if (expr.Right is ParameterExpression) { str += ((ParameterExpression) expr.Right).Name + " "; } else if (expr.Right is ConstantExpression) { str += ((ConstantExpression) expr.Right).Value + " "; } return str + expr.NodeType.ToString() .Replace("Add", "+") .Replace("Subtract", "-") .Replace("Multiply", "*") .Replace("Divide", "/") + " ";}// 呼び出し例:ToRPN((x, y, z) => (x + 1) * ((y - 2) / z)); // "x 1 + y 2 - z / *" を返す

※この「ラムダ式」の解説は、「C Sharp」の解説の一部です。
「ラムダ式」を含む「C Sharp」の記事については、「C Sharp」の概要を参照ください。


ラムダ式

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/21 01:43 UTC 版)

無名関数」の記事における「ラムダ式」の解説

クロージャ」も参照 ラムダ式 (lambda expression) はラムダ計算と関係が深く関数型言語で特によく採用されている。 Haskellにおける例を示す。バックスラッシュ '\' がギリシャ文字ラムダ 'λ' のように見えることから、Haskellではラムダ式を表す構文採用されている。 --let add x y = x + y -- 通常の前付関数addの定義。let add = \x y -> x + y -- 2つ引数取ってその和を返す無名関数定義し変数addバインドする。print $ add 2 3 Haskellでは変数バインドせずにラムダ式を直接引数作用させるともできるprint $ (\x y -> x + y) 2 3 以下のように高階関数引数にラムダ式を渡すこともできるlet calc op x y = op x yprint $ calc (\x y -> x + y) 2 3 関数型ではないプログラミング言語においても、ラムダ式を言語機能として取り入れ動きが活発である。 C#ではC# 3.0にて導入された。以下に例を示す。 Func add = (x, y) => x + y;Console.WriteLine(add(2, 3)); C++ではC++11にて導入された。以下に例を示す。 auto add = [](int x, int y) { return x + y; };std::cout << add(2, 3) << std::endl; JavaではJava 8にて導入された。以下に例を示す。 import java.util.function.*;...BiFunction add=(x, y) -> x + y;System.out.println(add.apply(2, 3));

※この「ラムダ式」の解説は、「無名関数」の解説の一部です。
「ラムダ式」を含む「無名関数」の記事については、「無名関数」の概要参照ください

ウィキペディア小見出し辞書の「ラムダ式」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ラムダ式」の関連用語

ラムダ式のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ラムダ式のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの無名関数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの統合言語クエリ (改訂履歴)、C Sharp (改訂履歴)、無名関数 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS