Sha256: a4acc66c28524d8dd532451a8504648f2d24b293ed1d885f8d6b8943fb8d97de

Contents?: true

Size: 721 Bytes

Versions: 268

Compression:

Stored size: 721 Bytes

Contents

module LinkedList ( LinkedList
                  , fromList, toList, reverseLinkedList
                  , datum, next, isNil, nil, new) where

data LinkedList a = Nil
                  | Cons { datum :: a
                         , next :: LinkedList a }
  deriving (Eq, Show)

new :: a -> LinkedList a -> LinkedList a
new = Cons

nil :: LinkedList a
nil = Nil

fromList :: [a] -> LinkedList a
fromList = foldr Cons Nil

toList :: LinkedList a -> [a]
toList Nil = []
toList (Cons x xs) = x : toList xs

reverseLinkedList :: LinkedList a -> LinkedList a
reverseLinkedList = go Nil
  where go acc Nil = acc
        go acc (Cons x xs) = (go $! Cons x acc) xs

isNil :: LinkedList a -> Bool
isNil Nil = True
isNil _ = False

Version data entries

268 entries across 268 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.179 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.178 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.177 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.176 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.175 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.174 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.173 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.172 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.171 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.170 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.169 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.167 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.166 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.165 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.164 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.163 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.162 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.161 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.160 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs