-
Notifications
You must be signed in to change notification settings - Fork 0
/
druha_kategoria.hs
35 lines (23 loc) · 1000 Bytes
/
druha_kategoria.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import Data.Char
--2. Definujte funkciu insertSort pre usporiadanie prvkov zoznamu priamym vkladaním (insert sort).
insertSort :: Ord a => [a] -> [a]
insertSort [] = []
insertSort (x:xs) = insert x (insertSort xs)
insert :: Ord a => a -> [a] -> [a]
insert x [] = [x]
insert x (y:ys) | (x < y) = (x:y:ys)
| otherwise = y:(insert x ys)
--7. De?nujte funkciu, ktorá realizuje prihlasovanie používate¾a do systému. Nech
-- funkcia ako parametre prijíma databázu používate¾ov, meno a heslo. Heslá sú
-- v databáze ukladané v šifrovanej podobe.
-- De?nujte tiež funkciu pre pridanie používate¾a do databázy
type HashedPassword = Int
type PassDB = [(String, HashedPassword)]
users :: PassDB
users = [("jozo",294),("anton",300),("martin",305)]
hashPassword :: String -> Int
hashPassword xs = sum [ord(x) | x <- xs]
addUser :: (String,String) -> PassDB -> PassDB
addUser (x,y) xs = (x,hashPassword y) : xs
login :: PassDB -> String -> String -> Bool
login xs x y = (x,hashPassword y) `elem` xs