Advertisement
lucasteles42

Double Cola

Jul 11th, 2022
2,332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.54 KB | None | 0 0
  1. module DoubleCola
  2.  
  3. let names =
  4.     [ "Sheldon"
  5.       "Leonard"
  6.       "Penny"
  7.       "Rajesh"
  8.       "Howard" ]
  9.  
  10. let personAt n =
  11.     Seq.initInfinite (pown 2)
  12.     |> Seq.collect (fun size -> names |> Seq.map (fun name -> size, name))
  13.     |> fun xs -> Seq.head xs, Seq.tail xs
  14.     ||> Seq.scan (fun (sum, _) (size, name) -> sum + size, name)
  15.     |> Seq.find (fun (size, _) -> size >= n)
  16.     |> snd
  17.  
  18.  
  19. personAt 1 // Sheldon
  20. personAt 6 // Sheldon
  21. personAt 6 // Penny
  22. personAt 52 // Penny
  23. personAt 1802 //Penny
  24. personAt 10010 // Howard
  25.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement