F # - Afficher les résultats complets dans F # fenêtre interactive
-
19-09-2019 - |
Question
Disclaimer: Total F # Newbie question
Si je tape ce qui suit dans un fichier F # dans Visual Studio
#light
let squares =
seq { for x in 1 .. 10 -> x * x }
printf "%A" squares
et exécuter F # interactive sur elle en mettant en valeur et en appuyant sur Alt + Entrée , la sortie dans la fenêtre interactive est
>
seq [1; 4; 9; 16; ...]
val squares : seq<int>
>
Mais je veux voir la séquence complète i.e..
>
seq [1; 4; 9; 16; 25; 36; 49; 64; 81; 100]
val squares : seq<int>
>
Est-ce possible? J'espère qu'il y ait un cadre pour cela que je l'ai raté.
La solution
« ss » est une construction paresseuse-évaluée; il pourrait être infini, ce qui explique pourquoi les FSI ne montre que quelques premières valeurs. Si vous voulez voir tout cela, une chose facile à faire est de convertir à une liste, par exemple.
printf "%A" (squares |> Seq.tolist)
Autres conseils
Si vous voulez afficher toutes les valeurs de la séquence sans transformer en une liste, vous pouvez itérer directement sur la séquence comme ceci:
Seq.iter (printfn "%A") squares
Notez que vous prenez un risque: si, comme Brian laisse deviner, la séquence est infinie, vous pourriez être dans une attente assez longue. (Dans ce cas, Seq.skip
et Seq.take
sont vos amis)
Une autre solution consiste à mettre en fsi.PrintLength
à un nombre suffisamment grand, par exemple.
> fsi.PrintLength <- 500