タグ

2018年12月27日のブックマーク (2件)

  • ラムダ式 - cpprefjp C++日本語リファレンス

    概要 「ラムダ式(lambda expressions)」は、簡易的な関数オブジェクトをその場で定義するための機能である。 この機能によって、「高階関数(関数を引数もしくは戻り値とする関数)」をより使いやすくできる。 auto plus = [](int a, int b) { return a + b; }; int result = plus(2, 3); // result == 5 ここでは、[](int a, int b) { return a + b; }というコードがラムダ式に当たる。このラムダ式は、「int型のパラメータを2つとり、それらを足し合わせたint型オブジェクトを返す関数オブジェクト」を定義している。ここでは戻り値の型を明記していないが、その場合はラムダ式のreturn文から、戻り値の型が推論される。 このラムダ式によって、その場に以下のような関数オブジェクトが定

    s_hiiragi
    s_hiiragi 2018/12/27
    “ラムダ式がひとつ以上の変数を参照キャプチャしている場合、参照している変数の寿命が切れたあとの、ラムダ式のコピーと呼び出しの動作は未定義。”
  • そのコードが標準化されてるJavaScriptなのかを判定する方法

    ECMAScript Version Detector ECMAScript Version Detectorというツールとライブラリを書きました。 azu.github.io/ecmascript-version-detector/へアクセスして、好きなコードをペーストすると、そのコードの構文がECMAScriptのどのバージョンから使える機能なのかを表示してくれます。 たとえば、以下のコードはasyncとawaitの部分がまだProposalであるAsync Functionsであることを検出してくれたりします。 目的 Babelなどの変換ツールでECMAScriptのProposalな機能などが身近になりました。 しかし、それがまだ仕様に入ってないもの(Proposal段階であるもの)ということを意識しないで書いてる人もよく見かけるようになりました。 そのため、まだProposalの

    そのコードが標準化されてるJavaScriptなのかを判定する方法