2017-10-10 38 views
2

如何計算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 
+3

你使用FSI(F#interactive)嗎?您可以在FSI中使用Alt-Enter在Visual Studio或VS Code中運行代碼,並以較小的塊解決像這樣的問題。它應該可以幫助你更快地學習。 – TheQuickBrownFox

回答

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
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 
相關問題