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.

War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top