Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tsfoster/elm-heap

Heaps for elm
https://github.com/tsfoster/elm-heap

data-structures elm elm-lang elm-language heaps

Last synced: 2 months ago
JSON representation

Heaps for elm

Awesome Lists containing this project

README

        

# elm-heap

Data structure for heaps, in [Elm][elmlang].

[elmlang]: http://elm-lang.org/

## Usage

Install the package:

```shell
elm package install TSFoster/elm-heap
```

Use the heap:

```elm
import Heap exposing (Heap, smallest, biggest, by, thenBy)

type alias Person =
{ firstname : String
, surname : String
, age : Int
}

init : Heap Person
init = Heap.empty (smallest |> by .surname)

defaultPeople : Heap Person
defaultPeople =
Heap.fromList (biggest |> by .surname |> thenBy .firstName |> thenBy .age)
[ { firstname = "Anders", surname = "And", age = 83 }
, { firstname = "Bruce", surname = "Bogtrotter", age = 8 }
, { firstname = "Charlie", surname = "Chaplin", age = 88 }
, { firstname = "Donald", surname = "Duck", age = 83 }
]
```

For full documentation, see [package.elm-lang.org][package-doc].

[package-doc]: http://package.elm-lang.org/packages/TSFoster/elm-heap/latest

# [Tests](/tests)

```shell
git clone https://github.com/TSFoster/elm-heap.git
cd elm-heap
npm install
npm test
```

# License

[MIT](/LICENSE)