Sha256: 9f5f927da5bf7c7928611da62d773629edabac74f8d253ff2c911639ec344f15
Contents?: true
Size: 598 Bytes
Versions: 145
Compression:
Stored size: 598 Bytes
Contents
open Core.Std type base = int let rec to_digits (b: base) (acc: int list) = function | 0 -> acc | n -> to_digits b (n % b :: acc) (n / b) let convert_bases ~from ~digits ~target = if from <= 1 || target <= 1 || List.is_empty digits then None else let open Option.Monad_infix in let digits = List.fold_left digits ~init:(Some 0) ~f:(fun acc d -> if d < 0 || d >= from then None else acc >>= (fun acc -> Some (acc * from + d)) ) in Option.map digits ~f:(to_digits target []) |> Option.map ~f:(fun xs -> if List.is_empty xs then [0] else xs)
Version data entries
145 entries across 145 versions & 1 rubygems