Отображать полную строку в интерактивном окне F#

Если я наберу следующее в fsx в коде Visual Studio

let longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

и запустите интерактивный F# на нем, выделив и нажав Alt+Enter, вывод в интерактивном окне

- let longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepte- ur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";;
val longString : string =
  "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed "+[384 chars]

или как скриншот:

вывод скриншота

Как я могу указать интерактивному окну F # отображать полную строку? Есть ли короткий путь или что-то еще?

Мне известно об этом сообщении, но, насколько мне известно, здесь все по-другому, потому что строка не оценивается лениво.


person aloisdg    schedule 05.03.2019    source источник


Ответы (2)


printfn напечатает его полностью:

printfn "%s" longString

Кроме того, вы можете изменить свойства объекта fsi, например:

fsi.PrintWidth <- 1000;;

Также вы можете использовать AddPrinter:

fsi.AddPrinter (fun (s:string) -> s)

Вот документация: https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/interactive.interactivesession-class-%5bfsharp%5d

person AMieres    schedule 05.03.2019
comment
Да, я знаю, но мне бы хотелось добиться этого, не меняя код. Например, изменение в конфиге - это то, что я ищу. - person aloisdg; 05.03.2019
comment
Хорошо, я расширил свой ответ. - person AMieres; 05.03.2019
comment
Работает как положено. Спасибо! - person aloisdg; 05.03.2019

Если это просто для тестирования/отладки: если вы находитесь в VSC, вы можете запустить свой скрипт в интерактивном режиме, как вы упомянули. Вы можете воспользоваться этим, используя интерактивный терминал и набрав (в указанном интерактивном терминале)

longString;;

//output
val it : string =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

Затем будет показана вся строка, и в большинстве случаев этого достаточно (поскольку вы все равно не хотите загромождать свой скрипт ненужными выводами).

person Erl    schedule 15.05.2019