Как напечатать весь список в F #? - PullRequest
4 голосов
/ 01 ноября 2009

Когда я использую Console.WriteLine для печати списка, по умолчанию отображаются только первые три элемента. Как заставить его распечатать все содержимое списка?

Ответы [ 3 ]

8 голосов
/ 01 ноября 2009

Вы можете использовать спецификатор формата% A вместе с printf, чтобы получить распечатку списка «украшен», но, как и Console.WriteLine (которая вызывает .ToString ()) для объекта, он не обязательно будет отображать все элементы. Чтобы получить их все, переберите весь список. Код ниже показывает несколько разных вариантов.

let smallList = [1; 2; 3; 4]
printfn "%A" smallList // often useful

let bigList = [1..200]
printfn "%A" bigList // pretty, but not all

printfn "Another way"
for x in bigList do 
    printf "%d " x
printfn ""

printfn "Yet another way"
bigList |> List.iter (printf "%d ")
printfn ""
6 голосов
/ 01 ноября 2009

Вы можете перебрать его, используя функцию List.iter, и распечатать каждый элемент:

let list = [1;2;3;4]
list |> List.iter (fun x -> printf "%d " x)

Дополнительная информация:

0 голосов
/ 29 июля 2018

Вот простая альтернатива, которая использует String.Join :

open System

let xs = [1; 2; 3; 4]
let s = "[" + String.Join("; ", xs) + "]"
printfn "%A" s
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...