let PadToFit (widest: char) (c: char) =
let charIndex (c: char) = int(c) - int('A')
let length = (charIndex widest) - (charIndex c)
String.replicate length " "
let PadRight = String.replicate (charIndex c) " "
PadLeft + c.ToString() + PadRight
let MirrorLeftToRight (s: string) =
let rev = new System.String(s |> Array.ofSeq |> Array.rev)
let MirrorTopToBottom l =
List.concat [l; rev.Tail]
let DiamondFor (ch: char) =
|> List.map (PadToFit ch)
|> List.map MirrorLeftToRight
|> List.iter (printfn "%s")