将文本文件内容转换为字符串,并作为F#中的函数传递



我想读取一个文本文件并计算其中的元音数量。我想知道如何将"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

而且,正如丹尼尔所说,这是非常基本的,所以如果你刚开始,花点时间阅读他给你的参考资料,并试着理解你在读什么。如果你不能掌握这一点,你就没有软件开发的前途:-)

相关内容

  • 没有找到相关文章

最新更新