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.119 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.118 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.117 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.116 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.115 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.114 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.113 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.111 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.110 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.109 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.108 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.107 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.106 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.105 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.104 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.103 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.102 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.101 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.100 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.99 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs