# Dominoes Make a chain of dominoes. Compute a way to order a given set of dominoes in such a way that they form a correct domino chain (the dots on one half of a stone match the dots on the neighbouring half of an adjacent stone) and that dots on the halfs of the stones which don't have a neighbour (the first and last stone) match each other. For example given the stones `[2|1]`, `[2|3]` and `[1|3]` you should compute something like `[1|2] [2|3] [3|1]` or `[3|2] [2|1] [1|3]` or `[1|3] [3|2] [2|1]` etc, where the first and last numbers are the same. For stones `[1|2]`, `[4|1]` and `[2|3]` the resulting chain is not valid: `[4|1] [1|2] [2|3]`'s first and last numbers are not the same. 4 != 3 Some test cases may use duplicate stones in a chain solution, assume that multiple Domino sets are being used. ## Getting Started For installation and learning resources, refer to the [exercism help page](http://exercism.io/languages/ocaml). ## Installation To work on the exercises, you will need `Opam` and `Core`. Consult [opam](https://opam.ocaml.org) website for instructions on how to install `opam` for your OS. Once `opam` is installed open a terminal window and run the following command to install core: ```bash opam install core ``` To run the tests you will need `OUnit`. Install it using `opam`: ```bash opam install ounit ``` ## Running Tests A Makefile is provided with a default target to compile your solution and run the tests. At the command line, type: ```bash make ``` ## Interactive Shell `utop` is a command line program which allows you to run Ocaml code interactively. The easiest way to install it is via opam: ```bash opam install utop ``` Consult [utop](https://github.com/diml/utop/blob/master/README.md) for more detail. ## Feedback, Issues, Pull Requests The [exercism/ocaml](https://github.com/exercism/ocaml) repository on GitHub is the home for all of the Ocaml exercises. If you have feedback about an exercise, or want to help implementing a new one, head over there and create an issue. We'll do our best to help you! ## Submitting Incomplete Solutions It's possible to submit an incomplete solution so you can see how others have completed the exercise.