Skip to content

Instantly share code, notes, and snippets.

@frectonz
Last active June 5, 2023 11:31
Show Gist options
  • Save frectonz/809d1665a9ff644c17ef616a0c779f8b to your computer and use it in GitHub Desktop.
Save frectonz/809d1665a9ff644c17ef616a0c779f8b to your computer and use it in GitHub Desktop.
From cassidoo's Jun 5, 2023 Newsletter
let sum = List.fold_left (fun acc x -> acc + x) 0
type result = { pies : int; uneaten_pieces : int }
let pies pieces piece_per_pie =
let total_pieces = sum pieces in
let pies =
if total_pieces mod piece_per_pie == 0 then total_pieces / piece_per_pie
else (total_pieces / piece_per_pie) + 1
in
{ pies; uneaten_pieces = (pies * piece_per_pie) - total_pieces }
let string_of_result { pies; uneaten_pieces } =
Printf.sprintf "Pies: %d, Uneaten pieces: %d" pies uneaten_pieces
let () = pies [ 9; 3; 4 ] 8 |> string_of_result |> print_endline
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment