Sha256: 5428a07aef0a6be7ef911cc86cafa46b6a9022813e23a88435683636644ac620

Contents?: true

Size: 680 Bytes

Versions: 24

Compression:

Stored size: 680 Bytes

Contents

module AllYourBase

let toBase b n =
    let rec loop n acc =
        if n = 0 then acc else
        let digit, n' = n % b, n / b
        loop n' (digit::acc)
    match loop n [] with
    | [] -> Some [0]
    | digits -> Some digits

let fromBase b nums =
    let rec loop acc = function
    | [] -> Some acc
    | digit::rest ->
        if digit <  0 then None else
        if digit >= b then None else
        loop (acc * b + digit) rest

    loop 0 nums

let rebase inB inDigits outB =
    match inB < 2 || outB < 2 with
    | true ->
        None
    | false ->
        inDigits
        |> List.skipWhile ((=) 0)
        |> fromBase inB
        |> Option.bind (toBase outB)

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
trackler-2.2.1.88 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.87 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.86 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.85 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.84 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.83 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.82 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.81 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.80 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.79 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.78 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.77 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.76 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.75 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.74 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.73 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.72 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.71 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.70 tracks/fsharp/exercises/all-your-base/Example.fs
trackler-2.2.1.69 tracks/fsharp/exercises/all-your-base/Example.fs