06 MAR

C# i wyrażenia Lambda

Wyrażenia Lambda są kolejnym elementem .NET 3.0, który zwrócił moją uwagę (zaraz po zapoznaniu się z LINQ).

Wyrażenia Lambda zapożyczone z języków funkcyjnych (np. Haskel) znajdują również zastosowanie w C# jednocześnie bardzo ładnie skracając kod. Wyrażenia Lambda mogą być stosowane wszędzie tam, gdzie oczekiwanym parametrem jest delegate. Króciutki przykład:

var list = new List();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list.Add(5);

/* zastosowanie wyrażenia lambda do filtrowania listy */
var search = list.Where( i => (i % 2) == 0 );
foreach( var i in search )
{
        Console.WriteLine( "elem: " + i.ToString() );
}

W rezultacie otrzymamy oczywiście:

elem: 2
elem: 4

kategorie ( programowanie )

gim

25 KWI 2008 o 14:01:24

Delegatki, kontenery, filtry dla kontenerów (D)

Dawno nic się tu nie działo, głównie dlatego, że nie bardzo mam czas
cokolwiek pisać.
Deely
pisał jakiś czas temu o wyrażeniach lambda w C#. Dzisiaj trochę o różnych bajerach jakie można robić w D.
Na początek zrobimy sobie[...]

GiM

06 MAR 2008 o 16:29:35

buuu, zdrajca, w D to już jest i lepiej! :P

s

06 MAR 2008 o 17:56:59

GiM już ? Już to byś mógł powiedzieć w latach 60-tych co najwyżej (pojawiła się po raz pierwszy pod koniec 50-tych).

Btw, całkiem przyjemnie ten C# wygląda, choć klasyka mi jakoś bardziej pasuje:

(let* ((list ‘(1 2 3 4 5)) (search (remove-if (lambda (i) (plusp (mod i 2))) list))) (dolist (i search) (format t „~&elem: ~A” i)))

deely

06 MAR 2008 o 19:38:59

GiM: buuu, zdrajca, w D to już jest i lepiej! :P

Jaki tam zdrajca ;) Trzeba poznać konkurencję zanim się ją wytępi ;)

Seban

06 MAR 2008 o 20:16:18

Dziś w pracy podobne wyrażenia były dla mnie wybawieniem. :-) Ale w Rubim oczywiście. Tam to jest powszechnie stosowane, coś fajnego.

@S czy to co napisałeś to jest z Lispa? Ni cholery nie wiem co tam jest.

GiM

18 MAR 2008 o 16:31:56

@S: biorąc pod uwagę, że D nie ma chyba dziesięciu lat, to chyba mogę powiedzieć ‘już’?
szczerze mówiąc, to D nie ma wyrażeń lambda w takiej formie jak prezentowana tu w C#. Miałem napisać krótki art, ale czasu nie mogę znaleźć

s

20 MAR 2008 o 12:37:23

@GiM, a możesz pisać co chcesz ;) to „już” nie pasuje mi ze względu na to sam ficzer w komputerystyce nie jest nowy. Jeśli masz na myśli tylko język D bez odniesienia do innych to „już” pasuje, ale imho jeśli go porównujesz z innymi to już nie… ;)

@Seban, owszem z Common Lispu. Jak byś to chciał wkleić & uruchomić to nie pójdzie bo coś tu podmienia cudzysłowy (textile ?) btw, normalnie to by wyglądało nieco inaczej/krócej ale pisałem tak żeby to była „kalka” przykładu a nie kod charakterystyczny dla lispu.

miniblog

Słowo kluczowe ( 04 SIE 2010 )

Przeglądając dzisiaj moje google analytics natknąłem się na interesującą rzecz. Otóż w zakładce słowa kluczowe pojawiła się nowa pozycja, o której nigdy bym nie pomyślał :)

Strata - Firefox 4 ( 20 KWI 2010 )

Natknąłem się dzisiaj na ciekawy dodatek do Firefoxa. Strata40 zmienia Firefoxa 3.x w Firefoxa 4. No przynajmniej wizualnie :) Dla mnie bardzo przyjemny dodatek.

Windows Vista, czcionka pogrubiona i kursywa ( 06 SIE 2009 )

Przed momentem otwieram firefoxa, patrzę na stronę, a tutaj wszystkie czcionki zamieniły się w pogrubione bądź kursywy. W GoogleTalku to samo. W Chrome to samo. Trochę zgłupiałem, bo nic nie robiłem na komputerze, co mogłoby coś popsuć. Pogooglałem i okazało się, że spotkało to nie tylko mnie. Pod tym adresem można znaleźć rozwiązanie problemu.

Dyplomata ( 24 MAR 2009 )

Dobry dyplomata to taki, który ogłaszając informację o nowym bugu wywołuje u ciebie przypływ podniecenia na myśl o zbliżającym się debugowaniu...

o mnie