Programování 2 – 9. cvičení

Úlohy k procvičení.

  1. Napište funkci 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.
  2. Napište funkci First, která vrátí první prvek sekvence splňující zadaný predikát.
  3. Napište funkci Any, která ověří, že alespoň jeden prvek sekvence splňuje zadaný predikát.
  4. Napište funkci All, která ověří, že všechny prvky sekvence splňují zadaný predikát.
  5. Napište funkci Compose, která složí dvě funkce. Parametry jsou funkce f:ABf: A \to B a g:BCg: B \to C a výsledek je funkce (gf)(x)=g(f(x))(g \circ f)(x) = g(f(x)).
  6. Napište funkci 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().
  7. Ze seznamu vět vyrobte seznam dvojic (věta, počet mezer v dané větě). Například pro seznam ["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)].
Functions inside functions meme