let x=[|15..20|]
let y=Array.map f x
printf "%O" y
我得到了一些类型信息。
有没有办法在不使用 for 循环的情况下,以逗号为分隔符打印“y”的每个元素?
可以使用System命名空间中的
String.Join
或F#原生功能:
<code>let x = [| 15 .. 20 |]
printfn "%s" (System.String.Join(",", x))
x |> Seq.map string |> String.concat "," |> printfn "%s"
</code>
在这种情况下,使用String.concat
来将字符串与分隔符连接起来可能是最好的选择(因为您不希望在末尾有分隔符)。
但是,如果您只想打印所有元素,也可以使用Array.iter
:
let nums= [|15..20|]
Array.iter (fun x -> printfn "%O" x) nums // Using function call
nums |> Array.iter (fun x -> printfn "%O" x) // Using the pipe
iteri
实现:nums |> Array.iteri (fun i x ->
if i <> 0 then printf ", "
printf "%O" x)
Array.iter (printfn "%O") nums
和nums |> Array.iter (printfn "%O")
。 - CaringDevprintfn "%A" y
let items = [| 15 .. 20|]
let strInterleaved delimiter items =
items
|> Seq.collect (fun item -> seq { yield delimiter; yield item})
|> Seq.skip(1)
items
|> Seq.map string
|> strInterleaved ","
|> Seq.iter (printf "%s")