Seminář z funkcionálního programování

Domácí úkol 3

Změny v zadání

  • Duplicitní soubory můžete počítat a vypisovat vícekrát (např. při ./du foo/ foo/bar/ můžete soubory umístěné kdekoli uvnitř foo/bar/ započítávat dvakrát (a obdobně adresáře ve foo/bar/ můžete vypsat dvakrát).

Implementační část

  • Úkol: Implementujte zjednodušenou Unixovou utilitu du. Zadání je formou popisu problému, dekomposici na jednotlivé funkce si musíte udělat sami. Zadání má dvě části: funkční dekomposici (s typovými signaturami) a samotnou implementaci.
  • Termíny:
    • 3. 4. 2019 23.59 pro funkční dekomposici a typové signatury
    • 17. 4. 2018 23.59 pro samotnou implementaci
  • Formát: Odevzdejte jeden soubor HW03.hs, který obsahuje typové signatury funkcí resp. konečnou implementaci. Obě odevzdávárny nahrávané soubory automaticky prefixují vaším učem.
  • K první části: Odevzdání funkční dekomposice s typovými signaturami je povinné (a je za něj 1 bod), při složitějších funkcích uvádějte i stručnou dokumentaci, co funkce dělá (klidně odrážkovitě). Při implementaci se samozřejmě nemusíte držet odevzdané funkční dekomposice na 100 %, zjistíte-li, že v některém ohledu nebyla vhodná. K funkční dekomposici od nás po odevzdání dostanete krátký feedback.
  • K druhé části: Do hlavičky řešení vložte krátkou reflexi (1 krátký odstavec stačí), jaké pro vás bylo nejdříve dekomponovat a až pak implementovat. Pište, prosíme, svůj skutečný názor – i pozorování, že podle vás je to kontraproduktivní je v pořádku.
Domácí úkol 3 – dekomposice
Odevzdávárna pro soubor se jmény a typy funkcí
Domácí úkol 3
Odevzdávárna pro implementaci třetího domácího úkolu

Peer review část

  • Úkol: Vaším úkolem je pochopit a otestovat řešení dvou dalších studentů. Řešení vám přidělí IS po termínu odevzdání. K vylosovaným řešením napište zpětnou vazbu. Ta musí obsahovat alespoň následující 3 odstavce textu/odrážek:
    • Co nefunguje? (Pro které případy se řešení nechová správně a proč?)
    • Co se vám líbí? (Které myšlenky řešení nebo části kódu se vám zdají elegantní či nadprůměrně dobré a proč?)
    • Co byste udělali jinak? (Které myšlenky nebo části kódu se vám zdají matoucí, nevhodné, nebo byste je udělali jinak z jiného důvodu?)
  • Termín: 24. 4. 2019 23.59