# All Your Base in OCaml

#### Convert a number, represented as a sequence of digits in one base, to any other base.

1 | ```
exercism fetch ocaml all-your-base
``` |

# All Your Base

Convert a number, represented as a sequence of digits in one base, to any other base.

Implement general base conversion. Given a number in base **a**,
represented as a sequence of digits, convert it to base **b**.

## Note

- Try to implement the conversion yourself. Do not use something else to perform the conversion for you.

## About Positional Notation

In positional notation, a number in base **b** can be understood as a linear
combination of powers of **b**.

The number 42, *in base 10*, means:

(4 * 10^{1)} + (2 * 10^{0)}

The number 101010, *in base 2*, means:

(1 * 2^{5)} + (0 * 2^{4)} + (1 * 2^{3)} + (0 * 2^{2)} + (1 * 2^{1)} + (0 * 2^{0)}

The number 1120, *in base 3*, means:

(1 * 3^{3)} + (1 * 3^{2)} + (2 * 3^{1)} + (0 * 3^{0)}

I think you got the idea!

*Yes. Those three numbers above are exactly the same. Congratulations!*

## Getting Started

For installation and learning resources, refer to the exercism help page.

## Installation

To work on the exercises, you will need `Opam`

and `Core`

. Consult opam 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:

1 |
```
opam install core
``` |

To run the tests you will need `OUnit`

. Install it using `opam`

:

1 |
```
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:

1 |
```
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:

1 |
```
opam install utop
``` |

Consult utop for more detail.

## Feedback, Issues, Pull Requests

The 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.