Created
June 18, 2015 11:36
-
-
Save ThomasLocke/8340f82012b51a879ac1 to your computer and use it in GitHub Desktop.
Haskell udfordringer 180615
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- 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 ??? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.