Итак, я пытаюсь сделать что-то простое:
printfn "Enter a number:"
try
let x = System.Console.ReadLine();
Some(int32(x))
with
| :? System.FormatException -> printfn "Invalid number!"
Some(0)
Я хочу напечатать сообщение, затем заставить пользователя ввести число и попытаться преобразовать его в тип int и вернуть его.
Если я просто скомпилирую код (введя fsc a3.fs в командной строке), он будет работать нормально.Он делает паузу, ждет ввода, затем возвращает Some (int).
Если я скопирую и вставлю код в FSI в командной строке, он отлично работает.
Но когда я нахожусь в Visual Studio и запускаю код в FSI (выделение + alt + enter), он просто проходит прямо над входной частью, и исключение выдается (и перехватывается).*
Вот вывод, когда я запускаю в FSI (в visual studio):
Enter a number:
Invalid number!
0
Как видите, на самом деле он никогда не останавливается и не ждет, пока я введу ввод.
Кто-нибудь знает, как заставить это работать?
Спасибо!