Skip to content

Instantly share code, notes, and snippets.

@ThomasLocke
Created June 18, 2015 11:36
Show Gist options
  • Save ThomasLocke/8340f82012b51a879ac1 to your computer and use it in GitHub Desktop.
Save ThomasLocke/8340f82012b51a879ac1 to your computer and use it in GitHub Desktop.
Haskell udfordringer 180615
-- Alle steder i ser ??? skal i skrive noget.
-- For bonuspoint:
-- Læs mere om List Comprehension her http://learnyouahaskell.com/starting-out (langt nede på siden)
-- Opgave 1
-- Definer to type synonymer kaldet Name og Names.
-- Name skal være et synonym for String og Names for liste af Name.
???
???
-- Opgave 2
-- Implementer følgende tre funktioner på basis af den givne signatur.
-- De skal returnere henholdvis "Morten", "Thomas" og "Trine".
-- Hint: De tre funktioner er helt ens.
morten :: Name
morten ???
thomas :: Name
thomas ???
trine :: Name
trine ???
-- Opgave 3
-- Lav en funktion der returnerer Names med indhold fra de tre Opgave 2 funktioner.
-- Hint: Husk at Names er et synonym for en liste.
someNames :: Names
someNames ???
-- Opgave 4
-- Lav en funktion der opfylder den givne signatur og hvor [String] er bagvendt,
-- sådan at "Trine" bliver til "enirT". Den givne Names liste skal beholde sin
-- oprindelige rækkefølge - det er kun de individuelle elementer i listen der skal
-- vendes rundt.
-- Bonuspoint: Løs opgaven med List Comprehension.
reverseNames :: Names -> [String]
reverseNames ???
-- Opgave 5
-- Lav en funktion der bagvender Name og tjekker om den bagvendte udgave findes
-- i Names. Skal give True på succes, ellers False.
reversedFound :: Name -> Names -> Bool
reversedFound ???
-- Opgave 6
-- Lav en funktion der returnerer den tredje karakter i Name.
-- Hint: !!
third :: Name -> Char
third ???
-- Opgave 7
-- Lav en funktion der returnerer "roi" når man giver den følgende liste:
-- [morten, thomas, trine]
-- Sagt på en anden måde: En funktion der returnerer en String lavet af det tredje
-- bogstav i hver enkelt navn i Names.
-- Bonuspoint: Løs opgaven med List Comprehension.
threes :: Names -> String
threes ???
-- Opgave 8
-- Lav en funktion der returnerer en liste med navne der er længere end 5 bogstaver.
-- Bonuspoint: Løs opgaven med List Comprehension
longNames :: Names -> Names
longNames ???
@Tomren3000
Copy link

import Prelude
type Name = String
type Names = [Name]

morten :: Name
morten = "morten"

thomas :: Name
thomas = "thomas"

trine :: Name
trine = "trine"

someNames :: Names
someNames = [thomas,trine,morten]

--reverseNames :: Names -> [String]
reverseNames = [reverse x | x <- someNames]

--reversedFound :: Name -> Names -> Bool
--reversedFound xs = [[reverse x | x <- someNames], x mod x <- Name == someNames]

skal helst se bort fra mine -- linjer da de er i testing phase.

Copy link

ghost commented Jun 25, 2015

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