Úlohy k procvičení. U všech úloh doporučuji začít tím, že si rozmyslíte signaturu funkce (parametry, jejich typy, jejich typové parametry, návratovou hodnotu).
Count
, která spočítá, kolik prvků sekvence splňuje zadaný predikát. Funkci můžete otestovat třeba tak, že ze seznamu vyberete pouze sudá čísla. Zkuste si predikát napsat jako lambdu.First
, která vrátí první prvek sekvence splňující zadaný predikát.Any
, která ověří, že alespoň jeden prvek sekvence splňuje zadaný predikát.All
, která ověří, že všechny prvky sekvence splňují zadaný predikát.Compose
, která složí dvě funkce. Parametry jsou funkce f: A \to B a g: B \to C a výsledek je funkce (g \circ f)(x) = g(f(x)).Zip
, která vezme dvě sekvence a vyrobí sekvenci dvojic.
Například kód:
var numbers = new[] { 1, 2, 3 };
var letters = new[] { "a", "b", "c" };
foreach ((int number, string letter) in Zip(numbers, letters))
Console.WriteLine($"{number}: {letter}");
má vypsat:
1: a
2: b
3: c
Hint: Podívejte se, jak funguje metoda GetEnumerator().
["Hello, how are you?", "The quick brown fox jumps over a lazy dog."]
je řešením [("Hello, how are you?", 3), ("The quick brown fox jumps over a lazy dog.", 8)]
.