Proste wytłumaczenie zagadnień C# - LINQ i Lambda


(Shiva) #1

Prosiłbym aby ktoś na przykładzie wytłumaczył mi dwa zagadnienia LINQ i Lambda. Łopatologicznie tak żebym zrozumiał jak i kiedy stosować :slight_smile:


(kowgli) #2

Trochę za obszerny temat na forum. Również nieco za skomplikowany na łopatologiczne wytłumacznie. Polecam kilka pierwszych rozdziałów w tej książeczce -  http://helion.pl/ksiazki/c-3-0-i-net-3-5-technologia-linq-jacek-matulewski,cshtec.htm. Jest to ładnie wytłumaczone.

http://allegro.pl/c-3-0-i-net-3-5-technologia-linq-i5637574017.html


(enedil) #3

Programistą C# nie jestem, ale o lambdach mogę pogadać.

Otóż jest to bardzo ciekawe zagadnienie, stanowiące model maszyny obliczeniowej, alternatywny do maszyny Turinga. Ten dział matematyki zaczął rozwijać się w latach 30 XX wieku, w środowiskach matematyków formalnych oraz logików (wielu z nich było także filozofami). Przechodząc do meritum…

 

Lambda (gr. λ), w matematyce została użyta jako określenie funkcji anonimowej (nie mającej nazwy).

Przykładowo, taki zapis

# lambda calculus
λx.λy.(x + y)

# Ruby
f = lambda do |x|
  lambda do |y|
    lambda do
      x + y
    end
  end
end
# właściwie wywołanie funkcji f, zwracającej funkcję.
f.call(5).call(4).call()

znaczy funkcję anonimową. Przykład w Rubym służy uzmysłowieniu działania zapisu matematycznego.


(Shiva) #4

ym no cóż wiem, że chciałeś dobrze, ale nic mi to nie mówi :wink:


(stasinek) #5

C++11 ale zasada podobna http://cpp0x.pl/kursy/Kurs-C++/Poziom-X/Wyrazenia-lambda-C++11/423