-
Notifications
You must be signed in to change notification settings - Fork 1
/
ListOfCharacter.hs
56 lines (41 loc) · 1.67 KB
/
ListOfCharacter.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
module ListOfCharacter where
-- DEFINISI DAN SPESIFIKASI LIST
{- type List of Int: [ ] atau [e o List] atau [List o e]
Definisi type List of Int
Basis: List of Int kosong adalah list of Int
Rekurens:
List tidak kosong dibuat dengan menambahkan sebuah elemen bertype Int di awal
sebuah list atau
dibuat dengan menambahkan sebuah elemen bertype Int di akhir sebuah list -}
-- DEFINISI DAN SPESIFIKASI KONSTRUKTOR
konso :: Char -> [Char] -> [Char]
{- konso e li menghasilkan sebuah list of integer dari e (sebuah integer) dan li
(list of integer), dengan e sebagai elemen pertama: e o li -> li' -}
-- REALISASI
konso e li = [e] ++ li
konsDot :: [Int] -> Int -> [Int]
{- konsDot li e menghasilkan sebuah list of integer dari li (list of integer) dan
e (sebuah integer), dengan e sebagai elemen terakhir: li o e -> li' -}
-- REALISASI
konsDot li e = li ++ [e]
-- DEFINISI DAN SPESIFIKASI SELEKTOR
-- head :: [Int] -> Int
-- head l menghasilkan elemen pertama list l, l tidak kosong
-- tail :: [Int] -> [Int]
-- tail l menghasilkan list tanpa elemen pertama list l, l tidak kosong
-- last :: [Int] -> Int
-- last l menghasilkan elemen terakhir list l, l tidak kosong
-- init :: [Int] -> [Int]
-- init l menghasilkan list tanpa elemen terakhir list l, l tidak kosong
-- DEFINISI DAN SPESIFIKASI PREDIKAT
isEmpty :: [Char] -> Bool
-- isEmpty l true jika list of integer l kosong
-- REALISASI
isEmpty l = null l
isOneElmt :: [Int] -> Bool
-- isOneElmt l true jika list of integer l hanya mempunyai satu elemen
-- REALISASI
isOneElmt l = (length l) == 1
inverse :: [Char] -> [Char]
inverse lc = if isEmpty lc then []
else konso (last lc) (inverse(init lc))