V tomto úkolu si napíšete interpreter pro malý jazyk "Simpl" (zkratka je rekurzivní: Simpl Is My Programming Language).
Simpl je maličkatý procedurální/imperativní jazyk, který je zhruba tak dobrý jako kalkulačka, která je povolená na maturitních zkouškách. Program v jazyce Simpl se skládá z bloků. Každý blok je posloupnost příkazů a v Simpl je každý příkaz nějaká forma přiřazení.
Ukázka -- co řádek, to jeden příkaz:
x = 42
y = x + 4
y *= 5
z = (y / (2 + y)) * x + 4 - 2 / 5
Snažte se psát co nejhezčí, nejkratší a nejidiomatičtější kód. Pokud něco jde napsat hezky na jeden řádek, učiňte tak. :) Jako obvykle vám může posloužit Style Guide z 5. úkolu.
Za úkol můžete dostat až 15 (nebonusových) bodů. Tentokrát budu klást i důraz na to, aby byl kód hezký!
Tento úkol má deadline společně s odevzdáním zápočtového programu.
Stáhněte si soubory Simpl.hs
a State.hs
a dejte je do jedné složky.
Soubor State.hs
nebudete měnit, je to jen stavová monáda ze cvičení.
Odevzdejte pouze soubor Simpl.hs
!
Pokud by vám ještě chyběly body, nabízím následující bonusové úkoly:
Napište mi feedback ke cvičení -- co jsem udělal dobře, co ne a co můžu do příštích let zlepšit
Vytvořte nějaké meme o něčem, co souvisí s předmětem Neprocedurální programování. Meme musí být informaticky korektní a nemělo by být o cvičících/přednášejících -- jen o předmětu/látce.