Учитывая список гласных, я написал функцию startsWithVowel
, чтобы исследовать, начинается ли слово с гласного. Как вы можете видеть, я использую исключение как controlflow, и это не идеально. Как это реализовать лучше?Функция 'startsWithVowel' в F #
let vowel = ['a'; 'e'; 'i'; 'o'; 'u']
let startsWithVowel(str :string) =
try
List.findIndex (fun x -> x = str.[0]) vowel
true
with
| :? System.Collections.Generic.KeyNotFoundException -> false
UPDATE: ТЕ всем: раз я переживаю: не стесняйтесь задать Newbee вопрос. Я вижу много очень полезных замечаний, держать их :-)
Хорошая идея. Я использовал List в своем ответе только потому, что это то, с чего мы начали. Набор имеет более близкое значение для намерения гласных. Что касается производительности, тем не менее, meh, так как коллекция настолько мала. –