Röportaj: Lambda ifadesi nedir? [kapalı]
Şu anda olduğu gibi, bu soru bizim soru-cevap formatımız için uygun değil. Yanıtların gerçekler, referanslar veya uzmanlık tarafından desteklenmesini bekliyoruz, ancak bu soru muhtemelen tartışma, tartışma, oylama veya genişletilmiş tartışmalar gerektirecektir. Bu sorunun iyileştirilebileceğini ve yeniden açılabileceğini düşünüyorsanız, rehberlik için yardım merkezini ziyaret edin .
7 yıl önce kapandı .
Son zamanlarda iki telefon görüşmesi yaptım.
Her iki röportajda da bir Lambda ifadesi tanımlayan son soru olarak soruldu.
Lambda ifadesinin bir delege yerine adsız bir yöntem olduğunu iddia ettim. Ama bir şekilde bu yeterli değildi.
Bunu bir telefon görüşmesinde tam olarak açıklamak çok zor.
Daha iyi bilen var mı?
Lambda İfadeleri sabit değerler olarak verilen isimsiz fonksiyonlardır. Başka herhangi bir sabitin olabileceği herhangi bir yerde görünebilirler, ancak genellikle başka bir fonksiyona parametre olarak yazılırlar. Kurallı örnek, bir karşılaştırma işlevini genel bir "sıralama" yordamına geçireceğiniz ve bu işlevi tanımlamak için bütün bir işlevi tanımlama (ve sözcüksel süreksizlik ve ad alanı kirliliğine yol açma) yerine geçecek olmanızdır; karşılaştırmayı açıklayan bir lambda ifadesini geçer.
Bununla birlikte, bu Lambda Expressions'ın en önemli özelliklerinden birini özlüyor, bu da görünüşleri bağlamında gerçekleştiriliyor. Bu nedenle, bu bağlamda tanımlanan değişkenlerin değerlerini kullanabilirler. Bu, fonksiyon göstergelerini gerçek lambda ifadelerinden ayırır. Değişken değişkenleri destekleyen dillerde, uygun lambda ifadeleri, bu değişkenlerin değerlerini değiştirme gücü sunar.
Lambda ifadeleri, tüm LISP'lerde, Perl'de, Python'da ve C ++, Objective C, C # ve Java 8'in yeterince yeni sürümlerinde (yeterince sözdizimiyle) görünür, ancak geçiş işlevleriyle başa çıkmak için bir yolu olmasına rağmen, özellikle C'de değildir. Bazıları için mazeretler) parametre olarak. Bunlar belirli anlambilimsel bir sözdizimi elemanıdır ve bu anlambilim, çalışma zamanında C'nin gerektirdiğinden daha fazla gereksinim duyar.
Bir lambda ifadesi adsız bir kod süspansiyonudur.
Bazı çok spesifik olmayan gösterimler kullanarak, bu anonim "iki şeyi çarp" işlevini (aka lambda ifadesi) düşünün.
λ(x, y) -> x * y
Cevabınız lambda kullandığınız bir yere özgüdür (C #? Sanırım) ve görüşmeci daha genel bir anlayış istediğinden şüpheleniyor. Bir temsilci kavramı, C # dili ve bir yöntem fikri bir lambdanın ne olduğuna ve nasıl çalıştıklarına ikincildir. Kağıt üzerinde lambda ifadeleri kullanarak , örneğin, hiçbir yöntem dahil olmadan hesaplayabilirsiniz .
Andres Jaan Tack2010-10-012010-10-01 11:30:19Z
Belki de LINQ'un "Dil-Bütünleşik Sorgu" olduğunu duymak istediler.
Olduğu söyleniyor, eğer gerçekten LINQ'dan oluşan "ne" hakkında bir açıklama yapmak isterlerse, muhtemelen sağladığınız daha fazla bilgiyi dahil ederdim. Gibi bir şey:
LINQ veya Dil ile Bütünleşik Sorgu, .NET 3.5'te eklenen ve sorgu işlemlerine daha işlevsel bir yaklaşım sağlayan bir dizi dil eklemesi ve çerçeve sınıfıdır. IEnumerable ve IQueryable için uzatma yöntemlerine ve LINQ’da Nesnelere ertelenen uygulamalara ve IQueryable üzerinden uzaktan işleme ve diğer birçok özelliğe uzaktan işlem yapılmasına izin veren genel benzerlerine dayanır. Doğrudan dilde daha "doğal" bir sorgu sözdizimini desteklemek için C # ve VB.NET'te dil değişiklikleri yapıldı.
Reed Copsey2010-09-302010-09-30 15:52:04Z
Ben Linq'in bir delegenin yerine isimlendirilmemiş bir yöntem olduğunu söyledim.
Aslında, bu kesinlikle LINQ değil, bir "lambda ifadesi". Ve teknik olarak, LINQ bile kullanmıyor.
LINQ "Dil Entegre Sorgu" anlamına gelir. Oldukça özel bir ifadeyle, "from ... where .. select" anahtar sözcükleridir (yani dile entegre edilmiş sorgu sözdizimi ).
Şimdi, bu anahtar kelimenin işleri yapmasını sağlamak için dile (ve CLR) (lambdalar, uzatma yöntemleri, Numaralandırılabilir sınıflar vb.) Daha birçok şey eklendi.
James Curran2010-09-302010-09-30 18:57:00Z
Gözden geçirilmiş sorunuzu cevaplamak için, bunun için, cevap gerçekten iyidir. Yapabileceğim tek değişiklik "satır içi" kelimesini vurgulamak.
Lambda ifadesi, bir temsilciye ihtiyaç duyulan bir yerde satır içi yazılmış adsız bir yöntemdir.
James Curran2010-10-012010-10-01 11:06:09Z
Msdn'de Lambda İfadesine bakmalısınız.
Muhtemelen LINQ'un sorgulama IQueryable ve IEnumerable nesneler için yeni DSL olduğunu bilmenizi bekliyorlar . Esasen, "from ... where ... select ..." sözdizimi. Lambdas ve fonksiyonel stil ile örtüler altında uygulandığını bilmek muhtemelen size bonus puan kazandırır.
Dinamik programlama nedir? [kapalı]
Birim testi nedir? [kapalı]
Amaç C++ nedir? [kapalı]
Microsoft SharePoint nedir? [kapalı]
Doctrine hidrasyonu nedir? [kapalı]
Makine öğrenmesi nedir? [kapalı]
Bir işleyici nedir [kapalı]
Bölge Tanımlayıcı Nedir? [kapalı]
Etiketle ilgili diğer sorular [lambda]