2009-07-20 20 views

cevap

21

Seq.append:

> let x = { 1 .. 5 };; 

val x : seq<int> 

> let y = Seq.append x [9];; // [9] is a single-element list literal 

val y : seq<int> 

> y |> Seq.toList;; 
val it : int list = [1; 2; 3; 4; 5; 9] 
+8

Bu, diziye bir öğe eklemediğini eklemeliyiz, ek öğe eklendiğinde yeni bir sıra oluşturuluyor mu? – Benjol

+0

y |> Seq.toList ;; – Indy9000

4

bir zorunluluk çözüm de var ...

> let x = seq {1..5} 
> let y = seq { yield! x; yield 9 } // Flatten the list,then append your element 
> Seq.to_list y;; 
val it : int list = [1; 2; 3; 4; 5; 9] 
altta yatan sorun bir zorunluluk biriyse bu iyi olabilir

ve Bir döngüde verim açıklamasını kullanmak için en doğal olanıdır.

let mySeq = seq { for i in 1..10 do yield i };; 
7

Ayrıca ilk yanıt hafif bir değişiklik olduğunu ama bunun yerine bir dizisine bir listenin dizilerini ekler

let newSeq = Seq.append oldSeq (Seq.singleton newElem) 

kullanabilirsiniz. Aşağıdaki kod

let startSeq = seq {1..100} 
let AppendTest = Seq.append startSeq [101] |> List.ofSeq 
let AppendTest2 = Seq.append startSeq (Seq.singleton 101) |> List.ofSeq 
let AppendTest3 = seq { yield! startSeq; yield 101 } |> List.ofSeq 

verilen

10000 infaz ilmek çalışma süreleri ne sen-ecek dan

Elapsed 00:00:00.0001399 
Elapsed 00:00:00.0000942 
Elapsed 00:00:00.0000821 

alın bulunmaktadır.