如何在F#

时间:2015-12-05 03:13:48

标签: f# sequences

我试图像F#

中的数组那样截断这个序列
let sublist sequ (i:int) (n:int) = 
    let item = Seq.item(n-i) sequ
    let start = Seq.item i sequ
    let ending = Seq.item n sequ
    Seq.truncate(item) (seq{start..ending})

sublist [|25..92|] 5 10 

喜欢它可以在这里完成

 Array.sub [|5..20|] 3 10

1 个答案:

答案 0 :(得分:2)

您忘了写预期结果。

您可以在评论中的关联答案中使用takeskip

let sublist sequ (i:int) (n:int) = 
    sequ |> Seq.skip i |> Seq.take (n-1)

请注意,如果您正在处理数组,则可以使用数组切片:

[|25..92|].[5..10]  
> 
val it : int [] = [|30; 31; 32; 33; 34; 35|]

[|5..20|].[3..10]
 > 
 val it : int [] = [|8; 9; 10; 11; 12; 13; 14; 15|]