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.98 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.97 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.96 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.95 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.94 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.93 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.92 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.91 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.90 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.89 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.88 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.87 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.86 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.85 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.84 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.83 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.82 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.81 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.80 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs
trackler-2.2.1.79 tracks/haskell/exercises/simple-linked-list/examples/success-standard/src/LinkedList.hs