1
exercism fetch sml 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 * 101) + (2 * 100)

The number 101010, in base 2, means:

(1 * 25) + (0 * 24) + (1 * 23) + (0 * 22) + (1 * 21) + (0 * 20)

The number 1120, in base 3, means:

(1 * 33) + (1 * 32) + (2 * 31) + (0 * 30)

I think you got the idea!

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

Loading your exercise implementation in PolyML

1
$ poly --use {exercise}.sml

Or:

1
2
$ poly
> use "{exercise}.sml";

Note: You have to replace {exercise}.

Running the tests

1
$ poly -q --use test.sml

Feedback, Issues, Pull Requests

The exercism/sml repository on GitHub is the home for all of the Standard ML 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.