我想读取一个文本文件并计算其中的元音数量。我想知道如何将"ParseFile"内容转换为字符串,然后作为变量传递给countVowels
显然,我尝试的方式(传递函数)不起作用。
open System.IO
open System
let ParseFile = File.ReadAllLines("C:\UserssidDesktopAmazonProductAdvertisingAPIDocumentsFile3.txt")
\let countVowels(str : string)
let countVowels (ParseFile) =
let charList = List.ofSeq str
let accFunc(As, Es, Is, Os, Us) letter =
if letter = 'a' then (As+1, Es, Is, Os, Us)
elif letter = 'e' then (As, Es+1, Is, Os, Us)
elif letter = 'i' then (As, Es, Is+1, Os, Us)
elif letter = 'o' then (As, Es, Is, Os+1, Us)
elif letter = 'u' then (As, Es, Is, Os, Us+1)
else (As, Es, Is, Os, Us)
List.fold accFunc (0, 0, 0, 0, 0) charList
我可以看到您的代码有一些问题:
线路:
let ParseFile = File.ReadAllLines("C:\UserssidDesktopAmazonProductAdvertisingAPIDocumentsFile3.txt")
这行应该是:
let ParseFile = File.ReadAllLines(@"C:UserssidDesktopAmazonProductAdvertisingAPIDocumentsFile3.txt")
或者应该是
let ParseFile = File.ReadAllLines("C:\Users\sid\Desktop\AmazonProductAdvertisingAPI\Documents\File3.txt")
但无论哪种方式,它都不正确,因为要么你需要用"@"来转义字符串,要么你需要通过加倍来转义反斜杠。
试着解决这个问题——正如我所说,还有其他问题,但试着先解决这个问题,然后看看你是否能自己解决其他问题。正如丹尼尔所说,你应该能够通过一点工作自己完成这项工作。
编辑:
哦,见鬼;这些年来,我从更有经验的开发人员的慷慨中受益,所以我可以提供更多的帮助。
更改此项:
let countVowels (ParseFile) =
到此:
let countVowels str =
然后将其添加到文件末尾:
countVowels ParseFile
而且,正如丹尼尔所说,这是非常基本的,所以如果你刚开始,花点时间阅读他给你的参考资料,并试着理解你在读什么。如果你不能掌握这一点,你就没有软件开发的前途:-)