Несоответствие типа поставщика F# CSV

У меня проблема с поставщиком типов F# CSV, и я получаю несоответствие типов. Я новичок в F #, так что это вполне может быть основной проблемой. Я поместил файл в хранилище больших двоичных объектов, чтобы вам было проще реплицировать его. https://analyzethis.blob.core.windows.net/voterinfo/WakeCountyVoterCSV примечание: вам нужно будет изменить расположение файла провайдеров на место загрузки для точной репликации. Вы также можете динамически загружать из BLOB-объекта.

Ошибка, которую я получаю:

Несоответствие типов: ожидается seq‹ CsvProvider‹...>.Row> -> int

но учитывая

seq‹ CsvProvider‹...>.Row> -> модуль

Тип int не соответствует единице

код:

open FSharp.Data
type voterType = CsvProvider<"C:\\Users\\dacrook\\Documents\\vrdb\\VoterCSVData2.csv", AssumeMissingValues=true, MissingValues="">

[<EntryPoint>]
let main argv = 
    let voterData = voterType.Parse("C:\\Users\\dacrook\\Documents\\vrdb\\VoterCSVData2.csv")
    voterData.Rows |> Seq.iter(fun r -> printfn "%A" r)

Любая помощь приветствуется!

Спасибо,

~ Дэвид


person David Crook    schedule 02.10.2014    source источник
comment
Вероятно, это обман stackoverflow.com/questions/26080292/   -  person John Palmer    schedule 03.10.2014


Ответы (1)


main имеет ожидаемый тип возвращаемого значения int, поэтому ваша последняя строка кода в функции main должна быть выражением int.

open FSharp.Data
type voterType = CsvProvider<"C:\\Users\\dacrook\\Documents\\vrdb\\VoterCSVData2.csv",   AssumeMissingValues=true, MissingValues="">

[<EntryPoint>]
let main argv = 
    let voterData = voterType.Parse("C:\\Users\\dacrook\\Documents\\vrdb\\VoterCSVData2.csv")
    voterData.Rows |> Seq.iter(fun r -> printfn "%A" r)
    0  // <--- Add an int as the return value
person Steve    schedule 02.10.2014
comment
Итак, я пошел дальше и добавил 0 и строку чтения, как показано ниже, однако он не печатает информацию о строках. Помещение его в интерактив дает вывод: val it: unit= () - person David Crook; 03.10.2014
comment
Я только что понял, что .Parse() предназначен для анализа строковых CSV-файлов, которые передаются. Load следует использовать для файлов и uri. К сожалению, при попытке использовать .Load мне сообщается, что поддерживаются только веб-сайты. - person David Crook; 03.10.2014
comment
Взгляните на stackoverflow.com/questions/25449774/, потому что я думаю, что это может быть связано? - person Steve; 03.10.2014