Skip to content

Instantly share code, notes, and snippets.

@juvuorin
Last active April 29, 2021 07:55
Show Gist options
  • Save juvuorin/13509b733683a3e3affd0de03ddca262 to your computer and use it in GitHub Desktop.
Save juvuorin/13509b733683a3e3affd0de03ddca262 to your computer and use it in GitHub Desktop.
Koiramainen ohjelmointikisa 2021
automaattirivit2 2 x = [Rivi {rivitunniste = 7, tieto=x,tyyppi=Automaatti},
Rivi {rivitunniste = 8, tieto=x,tyyppi=Automaatti},
Rivi {rivitunniste = 9, tieto=x,tyyppi=Automaatti}]
automaattirivit2 _ _ = []
data RiviTyyppi = Automaatti|Tavallinen deriving (Show)
data Rivi = Rivi {rivitunniste::Int, tieto::String,tyyppi::RiviTyyppi} deriving (Show)
testirivit =[Rivi {rivitunniste = 1, tieto="tunniste 1",tyyppi=Tavallinen},
Rivi {rivitunniste = 2, tieto="tunniste 2",tyyppi=Tavallinen}]
teeMuunnos2 = foldl (\acc rivi->
case (automaattirivit2 (rivitunniste rivi) (tieto rivi)) of
(x:xs)->acc++(automaattirivit2 (rivitunniste rivi) ("lisätietoa"))
[]->acc++[rivi]
) [] testirivit
@juvuorin
Copy link
Author

juvuorin commented Apr 29, 2021

Koska Selma-koira ei ymmärrä kirjanpidosta (edelleenkään) tuon taivaallista, hän laati yleisemmän ratkaisun, missä tilinumeroa vastaa rivitunniste ja kirjanpidon viennin määrää tieto. Rivityyppi on lisätty virheiden etsimistä varten, siitä nähdään mikä rivi on syntynyt automaation seurauksena. Ohjelmaa voi kokeilla ajamalla komentoriviltä funktion teeMuunnos2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment