fork download
  1. let vowels = "aeiou".ToCharArray()
  2. let IsVowel letter = Array.exists (fun vowel -> letter = vowel) vowels
  3. let ListToString lst =
  4. let sb = new System.Text.StringBuilder()
  5. sb.Append((Array.ofList lst)).ToString()
  6.  
  7. let Disemvoweler (input: string) =
  8. let rec disemvoweler characters consonants vowels =
  9. match characters with
  10. | [] -> List.rev consonants, List.rev vowels
  11. | head::tail when IsVowel head -> disemvoweler tail consonants (head::vowels)
  12. | head::tail when head <> ' ' -> disemvoweler tail (head::consonants) vowels
  13. | _::tail -> disemvoweler tail consonants vowels
  14.  
  15. let characters = List.ofArray (input.ToLower().ToCharArray())
  16. disemvoweler characters [] []
  17.  
  18. let Disemvowel (input: string) =
  19. let consonants, vowels = Disemvoweler input
  20. printfn "%s" input
  21. printfn "%s" (ListToString consonants)
  22. printfn "%s" (ListToString vowels)
  23. printfn ""
  24.  
  25. [<EntryPoint>]
  26. let main argv =
  27. Disemvowel "two drums and a cymbal fall off a cliff"
  28. Disemvowel "all those who believe in psychokinesis raise my hand"
  29. Disemvowel "did you hear about the excellent farmer who was outstanding in his field"
  30. //System.Console.ReadLine() |> ignore
  31. 0 // return an integer exit code
Success #stdin #stdout 0.08s 11664KB
stdin
Standard input is empty
stdout
two drums and a cymbal fall off a cliff
twdrmsndcymblfllffclff
ouaaaaoai

all those who believe in psychokinesis raise my hand
llthswhblvnpsychknssrsmyhnd
aoeoeieeioieiaiea

did you hear about the excellent farmer who was outstanding in his field
ddyhrbtthxcllntfrmrwhwststndngnhsfld
ioueaaoueeeeaeoaouaiiiie