Агуулгын хүснэгт:

C++ lambda гэж юу вэ?
C++ lambda гэж юу вэ?

Видео: C++ lambda гэж юу вэ?

Видео: C++ lambda гэж юу вэ?
Видео: C++ Functional programming гэж юу вэ? Гүнзгий детайлэд (Part 2) 2024, May
Anonim

C++11 болон түүнээс хойшхи хувилбаруудад a ламбда илэрхийлэл- ихэвчлэн а гэж нэрлэдэг ламбда -нь нэр нь үл мэдэгдэх функцийн объектыг (хаалт) тухайн функцэд аргумент болгон дуудсан эсвэл дамжуулсан байршилд нь тодорхойлох тохиромжтой арга юм.

Үүнтэй холбогдуулан Lambda C++ ямар төрөл вэ?

[C++ 11: 5.1. 2/3]: The төрөл -ийн ламбда -илэрхийлэл (энэ нь мөн төрөл хаах объект) нь өвөрмөц, нэргүй, нэгдмэл бус анги юм төрөл - хаалт гэж нэрлэдэг төрөл - тэдгээрийн шинж чанарыг доор тайлбарласан болно. Энэ анги төрөл нэгдэл биш (8.5.

Нэмж хэлэхэд C++ хэл дээр ламбда илэрхийлэл яагаад хэрэгтэй байна вэ? C++ Функцийн объект буюу функцийг нэвтрүүлсэн. Функторууд байна оператор()-ыг хэт ачаалдаг ангиуд. Haskell, C#, Erlang эсвэл F# зэрэг бусад програмчлалын хэлүүд нь функцын тодорхойлолтыг ашиглаж байгаа газартаа идэвхжүүлдэг. Эдгээр байна гэж нэрлэдэг ламбда илэрхийллүүд Учир нь түүний синтакс байна урам зориг авсан ламбда тооцоо.

Мөн асуулт бол C++ хэл дээр ламбда функцийг хэрхэн дамжуулах вэ?

Ламбда-г функцэд аргумент болгон дамжуулах 3 арга:

  1. std::функцийг ашиглан lambda объектыг зарлана. хүчингүй lambdaЖишээ1()
  2. Typedef-ийг ашиглан функцийн төрлийг зарлаж, түүнд lambda функцийг онооно. хүчингүй lambdaЖишээ2()
  3. Lambda зарлахын тулд бүтцийг ашиглана.

Ламбда хаалт гэж юу вэ?

А ламбда нь үндсэндээ функцийг зарлах стандарт аргаас илүү шугамаар тодорхойлогдсон функц юм. Ламбда нар ихэвчлэн объект хэлбэрээр дамжуулж болно. А хаалт нь түүний биеийн гадна талбаруудыг лавлах замаар хүрээлэн буй төлөвийг нь хаадаг функц юм.