F # - Anzeige vollständige Ergebnisse in F # interaktivem Fenster
-
19-09-2019 - |
Frage
Hinweis: Total F # Newbie Frage
Wenn ich geben Sie Folgendes in eine Fis-Datei in Visual Studio
#light
let squares =
seq { for x in 1 .. 10 -> x * x }
printf "%A" squares
und führen Sie F # interaktive darauf durch Markieren und Drücken von Alt + Enter , die Ausgabe im interaktiven Fenster
>
seq [1; 4; 9; 16; ...]
val squares : seq<int>
>
Aber ich will die vollständige Sequenz heißt sehen.
>
seq [1; 4; 9; 16; 25; 36; 49; 64; 81; 100]
val squares : seq<int>
>
Ist das möglich? Ich hoffe, dass es eine Einstellung dafür ist, dass ich verpasst habe.
Lösung
‚f‘ ein träge bewertet Konstrukt; es könnte unendlich sein, weshalb nur FSI die ersten Werte zeigt. Wenn Sie das alles, eine einfache Sache sehen will, ist zu tun, um eine Liste zu konvertieren, z.
printf "%A" (squares |> Seq.tolist)
Andere Tipps
Wenn Sie alle Werte in der Reihenfolge angezeigt werden sollen, ohne in eine Liste zu verwandeln, können Sie direkt auf der Sequenz iterieren etwa so:
Seq.iter (printfn "%A") squares
Beachten Sie, dass Sie ein Risiko sind unter: wenn, wie Brian Hinweise, die Folge unendlich ist, man könnte in eine ziemlich lange Wartezeit. (In diesem Fall Seq.skip
und Seq.take
sind deine Freunde)
Eine Alternative ist fsi.PrintLength
zu einer entsprechend großen Zahl zu setzen, z.
> fsi.PrintLength <- 500