let parser (substitute:string) numUsed arrayNum =
let count = if arrayNum % numUsed = 0 then 1 else 0
let count = count + (arrayNum.ToString().ToCharArray() |> Seq.map string |> Seq.filter (numUsed |> string |> (=)) |> Seq.length)
if count > 0 then [0..count - 1] |> Seq.iter (fun _ -> printf "%s" substitute);printfn "";None else Some arrayNum
[1..33] |> Seq.iter (parser "Fizz" 3 >> Option.bind (parser "Buzz" 5) >> Option.bind (parser "Woof" 7) >> function |Some x -> printfn "%i" x | _ -> ())