你如何计算f#中字符串中的元音?

时间:2017-10-10 12:38:29

标签: string f#

你如何在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

2 个答案:

答案 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