ceddlyburge/elm-collections

Queue and Stack implementations


Install
elm-package install ceddlyburge/elm-collections 1.0.1

Documentation

This library provides Queue and Stack implementations

elm-package install ceddlyburge/elm-collections

Stack

empty : Stack a

push : a -> Stack a -> Stack a

pushMany : a -> Int -> Stack a -> Stack a

pushManyFromFunction : (() -> a) -> Int -> Stack a -> Stack a

top : Stack a -> Maybe a

pop : Stack a -> ( Maybe a, Stack a)

toList : Stack a -> List a

Example

import Stack

main =
    Stack.empty
        |> Stack.push 7
        |> Stack.push 42
        |> Stack.pop |> snd
        |> Stack.top
        |> toString
        |> Html.text
            -- Shows "Just 7"

Queue (FIFO)

empty : Queue a

enq : a -> Queue a -> Queue a

enqMany : a -> Int -> Queue a -> Queue a

enqManyFromFunction : (() -> a) -> Int -> Queue a -> Queue a

first : Queue a -> Maybe a

deq : Queue a -> ( Maybe a, Queue a)

toList : Queue a -> List a

Example

import Queue

main =
    Queue.empty
        |> Queue.enq 7
        |> Queue.enq 42
        |> Queue.deq |> snd
        |> Queue.first
        |> toString
        |> Html.text
            -- Shows "Just 42"