SORU
19 AĞUSTOS 2008, Salı


Ne bir lambda (fonksiyon)?

Comp-bilim kurgu geçmişi olmayan bir kişi için, Bilgisayar Bilim dünyasında bir lambda nedir?

CEVAP
19 AĞUSTOS 2008, Salı


Lambda Lambda Calculus gelen ve programlama anonim işlevlerini gösterir.

Neden bu kadar harika değil mi? Onları adlandırma olmadan fonksiyonları atmak hızlı yazmak için izin verir. Ayrıca kapaklar yazmak için güzel bir yol sağlar. Bu güç ile bu gibi şeyler yapabilirsiniz.

Python

def adder(x):
    return lambda y: x   y
add5 = adder(5)
add5(1)
6

Python Pasajı gördüğünüz gibi, fonksiyon adder başka bir argüman alır y, bağımsız değişken x ve döner isimsiz bir fonksiyon veya lambda, alır. İsimsiz işlev işlevler işlevler oluşturmak için izin verir. Bu basit bir örnek, ama Lambda ve kilitler var gücü iletmek gerekir.

Diğer dillerde örnekler

JavaScript

var adder = function (x) {
    return function (y) {
        return x   y;
    };
};
add5 = adder(5);
add5(1) == 6

Düzeni

(define adder
    (lambda (x)
        (lambda (y)
           (  x y))))
(define add5
    (adder 5))
(add5 1)
6

C# 3.5 or higher

Func<int, Func<int, int>> adder = 
    (int x) => (int y) => x   y; // `int` declarations optional
Func<int, int> add5 = adder(5);
var add6 = adder(6); // Using implicit typing
Debug.Assert(add5(1) == 6);
Debug.Assert(add6(-1) == 5);

// Closure example
int yEnclosed = 1;
Func<int, int> addWithClosure = 
    (x) => x   yEnclosed;
Debug.Assert(addWithClosure(2) == 3);

Swift

func adder(x: Int) -> (Int) -> Int{
   return { y in x   y }
}
let add5 = adder(5)
add5(1)
6

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Absolute Zero(Programming Tutorials)

    Absolute Zer

    22 Kasım 2012
  • Exalto_Gamer

    Exalto_Gamer

    15 EKİM 2014
  • guau . .

    guau . .

    25 Ocak 2008

İLGİLİ SORU / CEVAPLAR