タグ付けされた質問 「lambda」

AWSサービスには使用しないでください(これらの質問には[aws-lambda]を使用してください!)ラムダは、Lisp、C#、C ++、Lua、Python、Ruby、JavaScript、Javaなどのプログラミング言語の匿名関数またはクロージャです。(また、ラムダ式。)

3
_(アンダースコア)は予約済みのキーワードです
交換しました s次のラムダ式を次のようにました_: s -> Integer.parseInt(s) Eclipseコンパイラは言う: '_'は、ソースレベル1.8以降の予約キーワードであるため、識別子として使用しないでください。 JLS§3.9字句構造/キーワードには説明がありません。
92 java  lambda  java-8 

4
コンパイルされたC#ラムダ式のパフォーマンス
コレクションに対する次の簡単な操作を検討してください。 static List<int> x = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var result = x.Where(i => i % 2 == 0).Where(i => i > 5); 次に、式を使用します。次のコードはほぼ同等です。 static void UsingLambda() { Func<IEnumerable<int>, IEnumerable<int>> lambda = l => l.Where(i => i % 2 == …

3
ラムダの明示的な戻り型
このコード(VS2010)をコンパイルすると、次のエラーが発生します。 error C3499: a lambda that has been specified to have a void return type cannot return a value void DataFile::removeComments() { string::const_iterator start, end; boost::regex expression("^\\s?#"); boost::match_results<std::string::const_iterator> what; boost::match_flag_type flags = boost::match_default; // Look for lines that either start with a hash (#) // or have nothing but white-space …

2
この参照( '&this')をラムダでキャプチャできないのはなぜですか?
thisラムダでキャプチャする(オブジェクトプロパティを変更する)正しい方法は次のとおりです。 auto f = [this] () { /* ... */ }; しかし、私が見た次の特異性について興味があります。 class C { public: void foo() { // auto f = [] () { // this not captured auto f = [&] () { // why does this work? // auto f = [&this] () { // Expected …
91 c++  c++11  lambda 

6
グローバルラムダを使用しない理由はありますか?
それ自体の内部にある非キャプチャラムダを使用する関数がありました。例: void foo() { auto bar = [](int a, int b){ return a + b; } // code using bar(x,y) a bunch of times } ラムダによって実装された機能が別の場所で必要になったので、ラムダをfoo()グローバル/名前空間スコープに持ち上げます。ラムダのままにするか、コピーと貼り付けのオプションにするか、適切な関数に変更できます。 auto bar = [](int a, int b){ return a + b; } // option 1 int bar(int a, int b){ return a + b; …
89 c++  lambda 

5
ラムダのサイズが1バイトなのはなぜですか?
C ++でいくつかのラムダのメモリを使用していますが、そのサイズに少し戸惑っています。 これが私のテストコードです: #include <iostream> #include <string> int main() { auto f = [](){ return 17; }; std::cout << f() << std::endl; std::cout << &f << std::endl; std::cout << sizeof(f) << std::endl; } ここで実行できます:http : //fiddle.jyt.io/github/b13f682d1237eb69ebdc60728bb52598 出力は次のとおりです。 17 0x7d90ba8f626f 1 これは、ラムダのサイズが1であることを示唆しています。 これはどのようにして可能ですか? ラムダは、少なくとも、その実装へのポインタであってはなりませんか?
89 c++  c++11  lambda  c++14  sizeof 

7
ラムダ言語とは何ですか?
私は「JavaScript:良い部分」を読んでいて、作者はJavaScriptが最初にリリースされるラムダ言語であると述べています。 JavaScriptの関数は、(主に)字句スコープを持つファーストクラスオブジェクトです。JavaScriptは、主流になった最初のラムダ言語です。JavaScriptは、JavaよりもLispやSchemeと共通しています。Cの服を着たLispです。これにより、JavaScriptは非常に強力な言語になります。 ラムダ言語とは何なのかわかりませんでした。そのような言語の特性は何ですか?それはJava、C、C ++、Phpのような言語とどう違うのですか?

6
LINQラムダで複数のテーブル間の結合を実行する方法
LINQで複数のテーブル間の結合を実行しようとしています。次のクラスがあります。 Product {Id, ProdName, ProdQty} Category {Id, CatName} ProductCategory{ProdId, CatId} //association table そして、私は次のコードを使用します(ここでproduct、categoryおよびproductcategoryは上記のクラスのインスタンスです)。 var query = product.Join(productcategory, p => p.Id, pc => pc.ProdID, (p, pc) => new {product = p, productcategory = pc}) .Join(category, ppc => ppc.productcategory.CatId, c => c.Id, (ppc, c) => new { productproductcategory = ppc, category = …

6
匿名メソッドで値を返す方法は?
これは失敗します string temp = () => {return "test";}; エラーで デリゲート型ではないため、ラムダ式を型 'string'に変換できません エラーは何を意味し、どうすれば解決できますか?
89 c#  .net  lambda 

3
Entity Framework 4のIncludeとラムダ式の使用
この問題を克服する方法について、CTP4に関連する記事や、独自の拡張メソッドを追加する記事をたくさん見ました。 include内でラムダ式を使用する "公式の" EF4組み込みの方法はありますか(最初のレベルの関係と2番目以上のレベルの両方)、または最終的にRTMに含まれなくなりましたか? それが1つあります。コードでラムダ式を(#system.data.entity#system.data.linqを使用して)使用しても、次のようになるため、その方法を学ぶことができればうれしいです。 ラムダ式はデリゲート型ではないため、 'string'型に変換できません: var customers = from c in context.Customers.Include(c=>c.Phone)

6
ラムダ式を返す関数
C ++ 11でラムダ関数を返す関数を書くことは可能だろうか。もちろん、1つの問題は、そのような関数をどのように宣言するかです。各ラムダには型がありますが、その型はC ++では表現できません。私はこれがうまくいくとは思いません: auto retFun() -> decltype ([](int x) -> int) { return [](int x) { return x; } } これも: int(int) retFun(); ラムダから関数へのポインターなどへの自動変換については知りません。関数オブジェクトを手作りして返す唯一の解決策はありますか?
88 c++  function  c++11  lambda 

6
C ++ 11で(同じタイプの)ラムダのベクトルを作成できないのはなぜですか?
ラムダのベクトルを作成しようとしましたが、失敗しました。 auto ignore = [&]() { return 10; }; //1 std::vector<decltype(ignore)> v; //2 v.push_back([&]() { return 100; }); //3 2行目までは、正常にコンパイルされます。しかし、3行目はコンパイルエラーを出します: エラー: 'std :: vector <main():: <lambda()>> :: push_back(main():: <lambda()>)'の呼び出しに一致する関数がありません 関数ポインタのベクトルや関数オブジェクトのベクトルは必要ありません。ただし、実際のラムダ式をカプセル化する関数オブジェクトのベクトルは、私にとっては機能します。これは可能ですか?
88 c++  vector  lambda  c++11 

7
Task.Run with Parameter(s)?
私はマルチタスクネットワークプロジェクトに取り組んでおり、は初めてですThreading.Tasks。シンプルなものを実装しましたが、Task.Factory.StartNew()どうすればそれができるのでしょうか。Task.Run()でしょうか? 基本的なコードは次のとおりです。 Task.Factory.StartNew(new Action<object>( (x) => { // Do something with 'x' }), rawData); オブジェクトブラウザを調べましSystem.Threading.Tasks.Taskたが、同様のパラメータが見つかりませんでした。パラメータを取るものだけがあり、タイプはありません。Action<T>Actionvoid そこ似唯一の2つのことは、次のとおりstatic Task Run(Action action)とstatic Task Run(Func<Task> function)が、両方とポストパラメータ(複数可)することはできません。 はい、私はそれのための簡単な拡張メソッドを作成できることを知っていますが、私の主な質問は、それを1行で書くことができるTask.Run()かどうかです。

7
Rubyブロックで「return」を使用する
埋め込みスクリプト言語にRuby1.9.1を使用しようとしているので、「エンドユーザー」コードはRubyブロックに記述されます。これに関する1つの問題は、ユーザーがブロックで「return」キーワードを使用できるようにしたいので、暗黙の戻り値について心配する必要がないことです。これを念頭に置いて、これは私がやりたいことのようなものです: def thing(*args, &block) value = block.call puts "value=#{value}" end thing { return 6 * 7 } 上記の例で「return」を使用すると、LocalJumpErrorが発生します。これは、問題のブロックがProcであり、ラムダではないためです。'return'を削除するとコードは機能しますが、このシナリオでは 'return'を使用できるようにしたいと思います。これは可能ですか?ブロックをラムダに変換しようとしましたが、結果は同じです。

14
Java 8、重複する要素を見つけるためのストリーム
整数リスト内の重複する要素をリストアップしようとしています。 List<Integer> numbers = Arrays.asList(new Integer[]{1,2,1,3,4,4}); jdk8のStreamsを使用します。誰かが試しましたか。重複を削除するには、distinct()APIを使用できます。しかし、重複した要素を見つけるのはどうですか?誰かが私を助けることができますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.