你如何在f#中用字符串计算元音?
let inputText = "sdhkjhsakdnadwqerdsdasefds"
let vowels = ["a";"e";"i";"o";"u"]
let count inputText = Seq.filter ((=) vowels) >> Seq.length
printfn "%A" count
Console.ReadLine() |> ignore
答案 0 :(得分:1)
let inputText = "sdhkjhsakdnadwqerdsdasefds"
let vowels = ['a';'e';'i';'o';'u']
let isVowel =
fun c -> vowels |> List.contains c
let count =
String.filter isVowel
>> String.length
printfn "%A" (count inputText)
我将元音列表更改为字符列表而不是字符串。您必须在函数中实际使用inputText
参数。在过滤之前,您还必须将字符串转换为字符数组。然后你必须给你的inputText
作为你的函数的参数。除了名称之外,函数参数inputText
和变量inputText
没有任何共同之处。
编辑:考虑了isVowel函数,并从count中删除了inputText参数,而不是使用首选方法>>
。
答案 1 :(得分:1)
let proj x =
if Array.contains x [| 'a';'e';'i';'o';'u' |] then 1
else 0
let count (text: string) =
text.ToCharArray()
|> Array.sumBy proj