let ``No.311 z in FizzBuzzString``() = let (|Fizz|Buzz|FizzBuzz|Other|) arg = match (arg % 3m , arg % 5m ) with | 0m , 0m -> FizzBuzz | 0m , _ -> Fizz | _ , 0m -> Buzz | _ , _ -> Other stdin.ReadLine() |> decimal |> fun n -> [1m..n] |> List.sumBy (fun i -> match i with | FizzBuzz -> 4 | Fizz -> 2 | Buzz -> 2 | Other -> 0 ) |> stdout.WriteLine ``No.311 z in FizzBuzzString``()