You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
44 lines
1.2 KiB
module WarmUp where |
|
|
|
-- 1 |
|
stops :: [Char] |
|
stops = "pbtdkg" |
|
vowels :: [Char] |
|
vowels = "aeiou" |
|
|
|
stopVowelStop :: [(Char, Char, Char)] |
|
stopVowelStop = [(x,y,z) | x <- stops, y <- vowels, z <- stops] |
|
|
|
svsP :: [(Char, Char, Char)] |
|
svsP = [(x,y,z) | x <- stops, y <- vowels, z <- stops, x == 'p'] |
|
-- or |
|
svsP' :: [(Char, Char, Char)] |
|
svsP' = [('p', x, y) | x <- vowels, y <- stops] |
|
-- or |
|
svsP'' :: [(Char, Char, Char)] |
|
svsP'' = filter (\(x,_,_) -> x == 'p') stopVowelStop |
|
|
|
nouns :: [[Char]] |
|
nouns = ["apple", "dog", "door", "water", "life"] |
|
|
|
verbs :: [[Char]] |
|
verbs = ["eat", "run", "drop", "jump", "grow"] |
|
|
|
tupleUp :: [a] -> [b] -> [c] -> [(a,b,c)] |
|
tupleUp xs ys zs = [(x,y,z) | x <- xs, y <- ys, z <- zs] |
|
|
|
nvn :: [([Char], [Char], [Char])] |
|
nvn = tupleUp nouns verbs nouns |
|
|
|
-- 2 |
|
seekritFunc :: [Char] -> Int |
|
seekritFunc x = div (sum (map length (words x))) |
|
(length (words x)) |
|
-- This function returns average number of characters per word |
|
|
|
-- 3 |
|
seekritFunc' :: Fractional a => [Char] -> a |
|
seekritFunc' x = (/) (fromIntegral $ sum (map length (words x))) |
|
(fromIntegral $ length (words x)) |
|
|
|
|
|
|