Просмотр исходного кода

provide a Seq instance for the prelude list.

Lucas Stadler лет назад: 11
Родитель
Сommit
def0a950d7
1 измененных файлов с 14 добавлено и 0 удалено
  1. 14 0
      hs/DataStructures.hs

+ 14 - 0
hs/DataStructures.hs

@ -75,6 +75,20 @@ reverse s = rev s nil
75 75
                  Nothing -> nil
76 76
                  Just x -> rev (rest l) $ cons x r
77 77
78
instance Seq [] where
79
    first [] = Nothing
80
    first (x:_) = Just x
81
82
    cons x xs = x:xs
83
84
    nil = []
85
86
    rest [] = []
87
    rest (_:xs) = xs
88
89
    isEmpty [] = True
90
    isEmpty _ = False
91
78 92
data List a = Nil | Cons a (List a) deriving Show
79 93
80 94
-- first and cons are O(1), everything else is O(n)