DSL for creating comparison functions in Elm.
Install the package:
elm package install TSFoster/elm-compare
Comparing records:
import Compare exposing (thenBy, thenByReverse, ascending, descending)
winner =
let
compare : Player -> Player -> Basics.Order
compare =
Compare.by .pokerSkill thenBy .cardShufflingAbility ascending
in
case compare player opponent of
EQ ->
Nothing
LT ->
Just opponent
GT ->
Just player
rankings =
List.sortWith
(Compare.with rockPaperScissors thenBy .age descending)
allPlayers
addressBook =
List.sortWith
(Compare.by .lastName thenBy .firstName thenByReverse .dateOfBirth ascending)
allContacts
For full documentation, see package.elm-lang.org.
git clone https://github.com/TSFoster/elm-compare.git
cd elm-compare
elm-test
npm install -g elm-doc-test && elm-doc-test && elm-test tests/Doc/Main.elm