namespace Algorithms.Strings module SwapCase = type System.Char with member this.IsUpper(): bool = match this with | c when c >= 'A' && c <= 'Z' -> true | _ -> false member this.IsLower(): bool = match this with | c when c >= 'a' && c <= 'z' -> true | _ -> false member this.Lower(): char = match this with | c when c >= 'A' && c <= 'Z' -> (char) ((int) this + 32) | _ -> this member this.Upper(): char = match this with | c when c >= 'a' && c <= 'z' -> (char) ((int) this - 32) | _ -> this /// /// This function will convert all lowercase letters to uppercase letters and vice versa /// let swapCase (sentence: string): string = let mutable newString = "" for character in sentence do match character with | c when c.IsUpper() -> newString <- newString + (string) (character.Lower()) | c when c.IsLower() -> newString <- newString + (string) (character.Upper()) | _ -> newString <- newString + (string) character newString