如何在 F# 中打印整个列表?

6

当我使用Console.WriteLine打印列表时,默认只显示前三个元素。如何让它打印整个列表的内容?


也许您可以展示一下您已经编写的代码? - Mitch Wheat
3个回答

11
你可以使用printf的%A格式说明符来获取美化后的列表输出,但是像object的Console.WriteLine(调用.ToString())一样,它并不一定会显示所有元素。要获取全部元素,需要遍历整个列表。下面的代码展示了几种不同的选择。
可以使用printf的%A格式说明符来获取美化后的列表输出,但像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 ""

7
你可以使用List.iter函数遍历it,并打印每个元素:
let list = [1;2;3;4]
list |> List.iter (fun x -> printf "%d " x)

更多信息:


1
这里有一个简单的替代方案,使用 String.Join
open System

let xs = [1; 2; 3; 4]
let s = "[" + String.Join("; ", xs) + "]"
printfn "%A" s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接