Я пробовал MSDN example для функции Seq.choose (написанной ниже) как в файле .fsx, так и в интерактивном окне для Visual Studio, но он неоднократно возвращает ошибку FS0001, в которой указано, что опцией «Нет» является тип PageExt, а не тип абстрактного варианта ».F # Seq.choose() Ошибка FS0001
Я тщетно искал объяснение типа PageExt или почему это могло бы возвращать ошибку, когда ключевое слово None должно просто представлять параметр «no value» в выражении соответствия.
let numbers = seq {1..20}
let evens = Seq.choose(fun x ->
match x with
| x when x%2=0 -> Some(x)
| _ -> None) numbers
printfn "numbers = %A\n" numbers
printfn "evens = %A" evens
;;
| _ -> None) numbers
---------------------------------------^^^^
>
C:Path\stdin(38,40): error FS0001: This expression was expected to have type
'a option
but here has type
PageExt
Спасибо за любую помощь, которую любой может предложить!
Это очень похоже на то, что у вас есть тип, называемый 'PageExt', где один случай объединения называется' None'. Щелкните правой кнопкой мыши в интерактивном окне, нажмите «Сбросить сеанс». –